1. 程式人生 > >MFC顯示系統時間

MFC顯示系統時間

outb 應用 圖標 長時間 form 範圍 pre test cstring

準備工作:

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 }

MFC顯示系統時間