SetTimer函數的用法
1 )用WM_TIMER來設置定時器
先請看SetTimer這個API函數的原型
UINT_PTR SetTimer(
HWND hWnd,//和定時器相關聯的窗口
UINT_PTR nIDEvent,//一個非0的數字標志這個定時器
UINT uElapse,//指定時間間隔,以毫秒為單位
TIMERPROC lpTimerFunc//一般指定為null
);
當在MFC的工程中如下:
UINT_PTR SetTimer(
UINT_PTR nIDEvent,//一個非0的數字標志這個定時器
UINT uElapse,//指定時間間隔,以毫秒為單位
TIMERPROC lpTimerFunc//一般指定為null
);
用法如下:
SetTimer(1,1000,NULL);
1:計時器的名稱;
1000:時間間隔,單位是毫秒;
NULL:使用onTime函數。
在每次時間到1s時會觸發WM_TIMER消息,其消息響應函數如下:
void CXXX::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
// 此處加入如下代碼就好了:
switch()
{
case 1:
//做該做的事情
//當不需要的時候在此處調用KillTimer(1);
break;
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
當不需要計時器的時候調用KillTimer(nIDEvent);
例如:KillTimer(1);
如果我要加入兩個或者兩個以上的 timer怎么辦?
繼續用SetTimer函數吧,上次的timer的ID是1,這次可以是2,3,4。。。。
SetTimer(2,1000,NULL);
SetTimer(3,500,NULL);
嗯,WINDOWS會協調他們的。當然onTimer函數體也要發生變化,要在函數體內添加每一個timer的處理代碼:
onTimer(nIDEvent)
{
switch(nIDEvent)
{
case 1:........;
break;
case 2:.......;
break;
case 3:......;
break;
}
}