MFC实例:[9] Timer定时器的使用
原创
©著作权归作者所有:来自51CTO博客作者wx63b7dda9ad524的原创作品,请联系作者获取转载授权,否则将追究法律责任
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。此时的对话框模板如下图:
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、添加定时器重载:
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、运行结果:
8、工程地址:
链接:https://pan.baidu.com/s/1f2XhfjXkUTyDSBkNIB7f5A
提取码:87br