MFC中SetTimer函數

SetTimer函數,創建或設置一個定時器,該函數創建的定時器與Timer控件效果一樣。

在MFC中,SetTimer被封裝在CWnd類中,SetTimer函數的原型爲:

UINT SetTimer(UINT nlDEvent, UINT nElapse, void(CALLBACK EXPORT *lpfnTimer)(HWND, UINT, YINT, DWORD) )

當使用SetTimer函數的時候,就會生成一個定時器,函數中nIDEvent指的是定時器的標識,也就是名字。nElapse指的是時間間隔,也就是每隔多長時間觸發一次事件。第三個參數是一個回調函數,在這個函數裏,放入你想要做的事情的代碼,你可以將它設定爲NULL,也就是使用系統默認的回調函數,系統默認的是OnTimer函數。這個函數怎麼生成的呢?你需要在需要計時器的類的生成OnTimer函數:在ClassWizard裏,選擇需要計時器的類,添加WM_TIMER消息映射,就自動生成OnTimer函數了。然後在函數裏添加代碼,讓代碼實現功能。每隔一段時間就會自動執行一次。

例:
SetTimer(1,1000,NULL);
1:計時器的名稱;
1000:時間間隔,單位是毫秒;
NULL:使用OnTimer函數。
當不需要計時器的時候調用KillTimer(nIDEvent);
例如:KillTimer(1);
1.2 調用回調函數
此方法首先寫一個如下格式的回調函數
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然後再用SetTimer(1,100,TimerProc)函數來建一個定時器,第三個參數就是回調函數地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章