准备工作:
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 }
来源:https://www.cnblogs.com/LYF-LIUDAO/p/7591884.html