VC:状态栏增加时间显示信息

 

STEP1:在resource 的 string table中,增加IDS_TIMER
STEP2:在indicators[]数组中,增加 IDS_TIMER 项
STEP3:修改如下函数

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

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 
 SetTimer(1,1000,NULL);
 
 CTime t=CTime::GetCurrentTime();
 CString str=t.Format("%H:%M:%S");
 CClientDC dc(this);
 CSize sz=dc.GetTextExtent(str);
 int index=0;
 index=m_wndStatusBar.CommandToIndex(IDS_TIMER);
 m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,sz.cx);
 m_wndStatusBar.SetPaneText(index,str);

}


void CMainFrame::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default

 CTime t=CTime::GetCurrentTime();
 CString str=t.Format("%H:%M:%S");
 CClientDC dc(this);
 CSize sz=dc.GetTextExtent(str);
 m_wndStatusBar.SetPaneInfo(1,IDS_TIMER,SBPS_NORMAL,sz.cx);
 m_wndStatusBar.SetPaneText(1,str);

 CFrameWnd::OnTimer(nIDEvent);
}

说明:
m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,sz.cx);
上面函数的功能,是使显示的窗口与内容相符。否则,显示内容可能不全。

你可能感兴趣的:(编程,timer,string,table,null)