资源描述:
《MFC中添加状态栏_显示时间》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFC中添加状态栏1.首先在stringtable里添加两个字串,ID分别为IDS_INDICATOR_MESSAGEandIDS_INDICATOR_TIME2.在你的dlg.h类里面加个CStatusBarm_bar;3.在dlg.cpp开头加上staticUINTindicators[]={ IDS_INDICATOR_MESSAGE, IDS_INDICATOR_TIME};4.OnInitDialog里面加上m_bar.Create(this);//Wecreatethestatusbarm_bar.SetIndi
2、cators(indicators,2);//SetthenumberofpanesCRectrect;GetClientRect(&rect);//Sizethetwopanesm_bar.SetPaneInfo(0,IDS_INDICATOR_MESSAGE, SBPS_NORMAL,rect.Width()-100); m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH,0);//ThisiswhereweactuallydrawitonthescreenRepo
3、sitionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST, ID_INDICATOR_TIME);5.时间显示OnInitDialog里面加SetTimer(1,1000,NULL);为你的dlg类添加WM_TIMER的响应函数,在其中添加代码: CTimet1; t1=CTime::GetCurrentTime(); m_bar.SetPaneText(1,t1.Format("%H:%M:%S")); CDialog:
4、:OnTimer(nIDEvent);这样添加的程序刚开始运行时在时间一栏中显示的是初始设置的字符,为了使程序在刚开始运行时就显示系统时间,可在m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH,0);后添加如下代码:CTimet1; t1=CTime::GetCurrentTime(); m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));这样在程序刚启动时就会显示系统时间,然后实时更新。以上编译完成后,可能会弹不出程序需要清理
5、解决方案,重新生成解决方案同时状态栏显示的是:设置字符串的时候的文字信息///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////本来以为自己对MFC有所了解的,最近再写程序的时候才发现,原来我对MFC一窍不通,记录一下吧: 第一步、先件两个字符串资源:IDS_STATESTRING1,IDS_STATESTRING2,
6、分别用来显示提示信息和版权信息! 第二步、创建一个数组,分别将上面的两个字符串资源ID写到里面:staticUINTindicators[]={IDS_STATESTRING1,IDS_STATESTRING2}; 第三步、再MFC的对话框类中添加成员变量:CStatusBar m_wndStatusBar; 第四步、由于创建状态栏要再主对话框创建成功以后创建,所以就再对话框初始化的时候添加吧! 到这里就创建好了! 如果要调整状态栏每个窗格的大小可以这样,比如
7、我要调整第一个窗格的大小:m_WndStatusBar.SetPaneInfo(0,m_WndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,650); 在程序中,如果要改变制定窗格中文字的化,这样:m_WndStatusBar.SetPaneText(0,"提示:恭喜你,参数设置成功..."); 如果出现字符不能正常显示等问题的话,需要给这个控件添加Update处理函数: CRectrect; GetClientRect(rect); if(!m_wndSta
8、tusBar.Create(this)
9、
10、!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))) {