给基于对话框的MFC程序添加状态栏并实时显示时间
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"));
这样在程序刚启动时就会显示系统时间,然后实时更新。
CSDN 于 2015-5-15
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。