MFC单文档任务栏添加 系统时间

状态栏的创建:CStatusBar对象创建  调用Create函数创建一个状态栏 

if (!m_wndStatusBar.Create(this))
{
  TRACE0("Failed to create status bar\n");
  return -1; // fail to create
}

 

调用SetIndicators 为每个指示器附加一个 字符串资源ID:

m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

static UINT indicators[] =
{
  ID_SEPARATOR, // status line indicator
  ID_INDICATOR_CAPS,
  ID_INDICATOR_NUM,
  ID_INDICATOR_SCRL,
  IDS_TIMER,
  IDS_PROGRESS,

  ......             //这里增加字符串资源 会反映到状态栏
};

 

在框架累WM_PAINT消息相应函数 OnPaint中添加

       SetTimer(1000,1000,NULL);  

捕获WM_TIMER消息    在OnTimer函数中 添加如下代码

       CTime  time=CTime::GetCurrentTime();// 经过静态方法返回一个CTime对象 
       CString str=time.Format("%H:%M:%S"); //格式化时间 到str  
       CClientDC dc(this);  //创建一个 框架类的dc 
       CSize size=dc.GetTextExtent(str);  //获得字符串中在屏幕上显示的尺寸
       int index =m_wndStatusBar.CommandToIndex(IDS_TIMER);  //通过ID获取索引 
       m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,size.cx);  //设置指示器的宽度   
       m_wndStatusBar.SetPaneText(index,str); //设置指定索引指示器的文本

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。