首先创建一个按钮,然后在按钮处理程序中加入:
SetTimer(1,2000,NULL); //创建并启动一个定时器,ID为1,运行间隔为2000毫秒
void CtimerDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
//启动定时器
SetTimer(1,2000,NULL); //1000毫秒
}
然后我们为定时器添加响应消息函数OnTimer()
类向导---消息---WM_Timer
编辑OnTimer()函数在其中添加定时器触发事件的实现代码。
void CtimerDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
MessageBox(L"测试");
CDialogEx::OnTimer(nIDEvent);
}
最后再创建一个按钮命名为STOP,在其中添加释放定时器的代码
void CtimerDlg::OnBnClickedButtonStop()
{
// TODO: 在此添加控件通知处理程序代码
KillTimer(1); //释放掉ID为1的定时器
}
如果有多个定时器,需要分别处理,我们可以像下面这样处理:
void CtimerDlg::OnTimer(UINT_PTR nIDEvent)
{
switch (nIDEvent)
{
case 1:
// 如果收到ID为1的定时器的消息则调用func1函数
func1();
break;
case 2:
// 如果收到ID为2的定时器的消息则调用func2函数
fun2();
break;
......
default:
break;
}
CDialogEx::OnTimer(nIDEvent);
}