一开始可能没有WM_TIMER消息,此时需要使用类向导添加消息。
SetTimer函数原型
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
);
定时器的初始化
SetTimer(1,1000,NULL);//一个1秒触发一次的定时器
重新初始化即可重置计时时间,不必“杀死“”SetTimer,
多个定时器的实现与应用
void CTimerTestDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 24: ///处理ID为24的定时器
Draw1();
break;
case 25: ///处理ID为25的定时器
Draw2();
break;
}
CDialog::OnTimer(nIDEvent);
}
注意:可以使用类向导,直接添加该函数。添加WM_TIMER消息。
取消定时器
直接运行下面的代码即可:
KillTimer(1);
其中1为定时器的ID编号。
函数KillTimer()的原型为:
BOOL KillTimer(
HWND hWnd, // 窗口句柄
UINT_PTR uIDEvent // ID
);
参考网址
SetTimer()函数使用