- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC中添加状态栏并实时显示时间.doc
MFC中添加状态栏并实时显示时间
2009-05-21 10:01
1.首先在string table 里添加两个字串,ID分别为IDS_INDICATOR_MESSAGE and IDS_INDICATOR_TIME
2.在你的 dlg.h 类里面加个 CStatusBar m_bar;
3.在dlg.cpp 开头加上
static UINT indicators[] =
{
???? IDS_INDICATOR_MESSAGE,
???? IDS_INDICATOR_TIME
};
4.OnInitDialog 里面加上
m_bar.Create(this); //We create the status bar
m_bar.SetIndicators(indicators,2); //Set the number of panes
CRect rect;
GetClientRect(rect);
//Size the two panes
m_bar.SetPaneInfo(0,IDS_INDICATOR_MESSAGE,
???? SBPS_NORMAL,rect.Width()-100);??????
m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH ,0);
//This is where we actually draw it on the screen
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,
???? ID_INDICATOR_TIME);
5.时间显示
OnInitDialog 里面加 SetTimer(1,1000,NULL);
为你的dlg类添加WM_TIMER的响应函数,在其中添加代码:
???????? CTime t1;
???????? t1=CTime::GetCurrentTime();
???????? m_bar.SetPaneText(1,t1.Format(%H:%M:%S));
???? CDialog::OnTimer(nIDEvent);
这样添加的程序刚开始运行时在时间一栏中显示的是初始设置的字符,
为了使程序在刚开始运行时就显示系统时间,可在m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH ,0);后添加如下代码:
CTime t1;??????? t1=CTime::GetCurrentTime();?????? m_bar.SetPaneText(1,t1.Format(%H:%M:%S));
这样在程序刚启动时就会显示系统时间,然后实时更新。
以上编译完成后,可能会弹不出程序
需要清理解决方案,重新生成解决方案
同时状态栏显示的是:设置字符串的时候的文字信息
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本来以为自己对MFC有所了解的,最近再写程序的时候才发现,原来我对MFC一窍不通,记录一下吧:????????? 第一步、先件两个字符串资源:IDS_STATESTRING1,IDS_STATESTRING2,分别用来显示提示信息和版权信息!????????? 第二步、创建一个数组,分别将上面的两个字符串资源ID写到里面:static UINT indicators[]={IDS_STATESTRING1, IDS_STATESTRING2};????????? 第三步、再MFC的对话框类中添加成员变量:CStatusBar?? m_wndStatusBar;??????? 第四步、由于创建状态栏要再主对话框创建成功以后创建,所以就再对话框初始化的时候添加吧!????????? 到这里就创建好了!????????? 如果要调整状态栏每个窗格的大小可以这样,比如我要调整第一个窗格的大小:m_WndStatusBar.SetPaneInfo(0,m_WndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,650); 在程序中,如果要改变制定窗格中文字的化,这样:m_WndStatusBar.SetPaneText(0,提示: 恭喜你, 参数设置成功...);????????? 如果出现字符不能正常显示等问题的话,需要给这个控件添加Update处理函数:
???? CRect rect;???? GetClientRe
您可能关注的文档
- Forgame汪东风 揭开轻游戏发展的“达芬奇密码”.doc
- Forgame汪东风深度解析 轻游戏是未来互联网发展大方向.doc
- Forgame汪东风解读轻游戏发展 轻游戏潜力无限.doc
- Forgame集团CEO汪东风 轻游戏发展有着不可估量潜力.doc
- Forgame集团CEO汪东风轻游戏观 轻游戏制胜关键在于“内容为王”.doc
- Forgame集团汪东风 揭开轻游戏发展的“达芬奇密码”.doc
- Forgame集团汪东风揭秘轻游戏发展市场.doc
- Forgame集团汪东风看重轻游戏发展 轻游戏未来互联网发展主流.doc
- Forgame集团汪东风解读轻游戏 机缘巧合之下全民游戏时代来临.doc
- Forgame集团汪东风解读轻游戏发展历程 轻游戏发展不可估量.doc
文档评论(0)