在主视图中创建了地图后,如何在状态栏显示时钟呢,步骤如下:
1、利用字符串编辑器编辑应用程序的字符串表资源。在ResourceView选项卡上的String Table文件夹里的String Table图标上双击可进入字符串编辑器,然后在列表的最后空项上双击。此时,会弹出一个对话框,允许我们指定ID和字符串值,如下图所示
2、利用ClassWiazrd在CMainFrame类中添加WM_TIME消息控制函数;
3、在MainFrm.h中使m_wndStatusBar为public而不是protected成员。
4、编辑MainFrm.cpp文件。1)将indicator数组中ID_INDICATOR_***成员换成ID_INDICATOR_CLOCK;2)添加宏定义#define SHOW_TIMER 1 //显示时钟
3)在函数intCMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 中添加代码
SetTimer(SHOW_TIMER,1000,NULL); //定时器,时间间隔设为1000毫秒,用于时钟显示
4)在函数voidCMainFrame::OnTimer(UINT nIDEvent) 添加代码
CTimetime;
CStringsTime,strInfo;
if(nIDEvent==SHOW_TIMER)
{
time= CTime::GetCurrentTime(); //得到当前时间
sTime= time.Format("%Y年%m月%d日 %H:%M:%S"); //转换时间格式
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),sTime);//状态栏显示时钟
}
5、编译运行程序,如下图