MFC顯示系統時間


准備工作:

1、在視圖中右擊->類向導->消息->找到消息WM_TIMER,同事右側會出現消息的響應函數OnTimer,雙擊OnTimer

一、標題欄顯示系統時間

1、在BOOL XXXDlg::OnInitDialog()函數中添加定時器SetTimer(1,1000,NULL);//第一個參數是定時器ID,你隨意定,但是如果不能喝其他定時器的ID重復,第二個參數是時間(ms)就是每隔多長時間執行一次,第三個參數一般為NULL,為NULL是表示使用OnTimer為響應函數,當然你也可以自己定義一個響應函數

2、在OnTimer中添加代碼,獲取系統時間。(例子在下面)

CTime cTime = CTime::GetCurrentTime();
CString strTime; //字符串格式化時間
strTime = cTime.Format("現在是%Y年%m月%d日 %X");
SetWindowText(strTime);

二、在Edit編輯框中顯示系統時間

1、從工具箱中拖拽一個Edit控件放在視圖上

2、右擊Edit控件選擇添加變量(我的是m_strTimeTest),然后確定即可

三、一和二的示例如下:

 1 BOOL CMFCTestDlg::OnInitDialog()
 2 {
 3     CDialogEx::OnInitDialog();
 4 
 5     SetTimer(0,1000,NULL);//設置定時器顯示時間顯示到標題欄
 6     SetTimer(1,1000,NULL);//顯示在EDIT編輯框中
 7     // 將“關於...”菜單項添加到系統菜單中。
 8 
 9     // IDM_ABOUTBOX 必須在系統命令范圍內。
10     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
11     ASSERT(IDM_ABOUTBOX < 0xF000);
12 
13     CMenu* pSysMenu = GetSystemMenu(FALSE);
14     if (pSysMenu != NULL)
15     {
16         BOOL bNameValid;
17         CString strAboutMenu;
18         bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
19         ASSERT(bNameValid);
20         if (!strAboutMenu.IsEmpty())
21         {
22             pSysMenu->AppendMenu(MF_SEPARATOR);
23             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
24         }
25     }
26 
27     // 設置此對話框的圖標。當應用程序主窗口不是對話框時,框架將自動
28     //  執行此操作
29     SetIcon(m_hIcon, TRUE);            // 設置大圖標
30     SetIcon(m_hIcon, FALSE);        // 設置小圖標
31 
32     // TODO: 在此添加額外的初始化代碼
33 
34 
35     return TRUE;  // 除非將焦點設置到控件,否則返回 TRUE,不過這個一般都不會更改
36 }

時間響應函數

 1 void CMFCTestDlg::OnTimer(UINT_PTR nIDEvent)
 2 {
 3     // TODO: 在此添加消息處理程序代碼和/或調用默認值
 4 
 5     switch (nIDEvent)
 6     {
 7     case 0:
 8         {
 9             //標題欄顯示系統時間
10             CTime cTime = CTime::GetCurrentTime();  
11             CString strTime;    //字符串格式化時間  
12             strTime = cTime.Format("現在是%Y年%m月%d日 %X"); 
13             SetWindowText(strTime);  
14         }
15         break;
16     case 1:
17         {
18             //對話框顯示系統時間
19             CTime cTime = CTime::GetCurrentTime();  
20             CString strTime;    //字符串格式化時間  
21             strTime = cTime.Format("%Y-%m-%d   %X"); 
22             m_strTimeTest.SetWindowTextW(strTime);
23         }
24         break ;
25     default:
26         break;
27     }
28     CDialogEx::OnTimer(nIDEvent);
29 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM