void CMyDialog::OnInit(){
SetTimer(1,1000,NULL);
}
void CMyDialog::OnTimer(UINT nEventID)
{
if(nEventID==1){
//other cacl task ....
..................................
//when this code section execute time is more than 1000ms
KillTimer(1);
}
CDialog::OnTimer(nEventID);
}
当在定时器延时到达后执行的OnTimer时间超过定时器的间隔时间时,Windows会将WM_TIMER消息排队等到执行完毕再次触发..
OnTimer就可能不知执行一次。