MFC实例:[9] Timer定时器的使用

1、打开vs2017---》文件----》新建---》项目(基于对话框)

2、打开资源文件---》打开设计框:

3、删除“TODO: Place dialog controls here.”静态文本控件。添加两个​​静态文本框​​​控件,Caption分别设为“1秒钟刷新一次”和“2秒钟刷新一次”,再添加两个个​​Edit Control控件​​,ID使用默认的IDC_EDIT1和IDC_EDIT2,两者的Read Only属性都设为True。此时的对话框模板如下图:

MFC实例:[9] Timer定时器的使用_程序代码

4、在对话框模板上双击OK按钮,添加点击消息的处理函数:

void CMFCTimerDlg::OnBnClickedOk()
{

// TODO: 在此添加控件通知处理程序代码
m_nData1 = 0;
m_nData2 = 0;
// 启动ID为1的定时器,定时时间为1秒

SetTimer(1, 1000, NULL);
// 启动ID为2的定时器,定时时间为2秒
SetTimer(2, 2000, NULL);

// CDialogEx::OnOK();注释掉,防止退出
}

5、添加定时器重载:

MFC实例:[9] Timer定时器的使用_程序代码_02

6、在函数中添加代码:

void CMFCTimerDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
switch (nIDEvent)
{
case 1:
// 如果m_nData1已经达到10,则销毁ID为1的定时器
if (10 == m_nData1)
{
KillTimer(1);
break;
}
// 刷新编辑框IDC_EDIT1的显示
SetDlgItemInt(IDC_EDIT1, ++m_nData1);
break;
case 2:
// 如果m_nData2已经达到5,则销毁ID为2的定时器
if (5 == m_nData2)
{
KillTimer(2);
break;
}
// 刷新编辑框IDC_EDIT2的显示
SetDlgItemInt(IDC_EDIT2, ++m_nData2);
default:
break;
}

CDialogEx::OnTimer(nIDEvent);
}

7、运行结果:

MFC实例:[9] Timer定时器的使用_编辑框_03

8、工程地址:

链接:https://pan.baidu.com/s/1f2XhfjXkUTyDSBkNIB7f5A 
提取码:87br