MFC显示系统时间
Posted 冥天笑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于MFC显示系统时间的主要内容,如果未能解决你的问题,请参考以下文章