vc在狀態列顯示時間

來源:互聯網
上載者:User

c/c++ vc 在mfc狀態列顯示時間
在VC的控制項中有個Status bar可以在表單狀態列中添加日期和時間。其實通
過簡單的代碼,你就能建立一個有時鐘顯示的狀態列,並且還能設定時鐘欄的顯
示方式。舉例如下:
首先,用MFC AppWizard按預設建立一個多重文件介面的應用程式架構。
然後,編寫代碼:
1)在String Table中添加New String,在此定義為ID_INDICATOR_CLOCK,將
其Caption設為00:00:00(由於狀態列根據Caption確定時間窗格的預設寬度,
使用此值將為時間的顯示預留空間)。注意,本步操作時有兩種方式:
一種建立新的String Table,並添加String;另一種則在原有String Table
中添加。當用後一種方式操作時,若完成後,時鐘欄並不顯示時間,則需要將此
New String在String Table中對應的Value值加1(可在resource.h中修改)。

2)在MainFrm.cpp中indicators聲明處添加ID_INDICATOR_CLOCK,代碼如下:

static UINT indicators[] =
{
ID_SEPARATOR,
ID_INDICATOR_CLOCK, //這裡排列影響顯示順序
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};

這一步中ID_INDICATOR_CLOCK的插入位置將影響時間窗格在狀態列中的顯示位置。
3)安裝定時器:在MainFrm.cpp中OnCreate函數處添加代碼如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{ ……
SetTimer(1,1000,NULL);//安裝定時器,並將其時間間隔設為1000毫秒
return 0;
}
4)編寫時間處理函數:利用ClassWizard為CMainFrame類加入WM_TIMER的消
息處理函數OnTimer,並添加代碼如下:
void CMainFrame::OnTimer(UINT nIDEvent)
{// TODO: Add your message handler code here and/or call default
CTime time;
time=CTime::GetCurrentTime();//得到目前時間
CString s=time.Format("%H:%M:%S");//轉換時間格式
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),s); //顯示時鐘
CFrameWnd::OnTimer(nIDEvent);}
5)銷毀定時器:利用ClassWizard為CMainFrame類加入WM_CLOSE的訊息處理
函數OnClose,並添加代碼如下:
void CMainFrame::OnClose()
{// TODO: Add your message handler code here and/or call default
KillTimer(1);//銷毀定時器
CFrameWnd::OnClose();}
最後,編譯運行。
怎麼樣,你的時鐘還不錯吧。此外,你還可以通過調用CStatusBar的成員函
數SetPaneStyle,SetPaneInfo來設定你的時鐘欄的顯示方式。例如:在MainFrm
.cpp中OnCreate函數處添加如下代碼,即可將你的時鐘欄pop out:
 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 {…
m_wndStatusBar.SetPaneInfo(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),ID_INDICATOR_CLOCK,SBPS_POPOUT,50);
return 0;}
瞭解了如何添加時鐘,添加別的窗格也是大同小異。比如動態顯示滑鼠提示,動態顯示其它你所需要的提示等等,你可以隨心所欲地定製自己的狀態列了 
 http://download1.csdn.net/down3/20070524/24174929693.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.