函數:
SetTimer KillTimer
消息:
WM_TIMER
說明:
理論上SetTimer可以設置1到4294967295(將近50天)毫秒的時間間隔,但Windows 98最小時間間隔爲55毫秒,Windows NT大約是10毫秒,而且定時不準確,比如在Windows 98下設置1000毫秒的定時,實際上只有989毫秒。WM_TIMER和WM_PAINT一樣,優先權較低,只有當消息隊列中沒有消息時,纔會產生消息,對於消息隊列中的多個消息,WM_TIMER會合併成一條消息。當程序過於忙時,系統可能還不會產生WM_TIMER消息。因而,不能通過WM_TIMER消息個數來計時。
三種使用方法:
方法的不同,取決於SetTimer的參數。
1. 設置定時器:
這個方法可以在消息循環中收到WM_TIMER消息,wParam是發送定時消息的定時器的ID,即iTimerID。刪除定時:
2. 設置定時器:
TimerProc是定時響應函數,nTimerID發送的定時消息不會出現在消息循環中,而是直接由TimerProc處理。TimerProc的定義方式:
dwTime與GetTickCount的返回值兼容,是發送定時消息時Windows啓動所過去的毫秒數。刪除定時器方法同方法1。
3. 設置定時器:
這種方法比較少用,主要是當定時器太多而又不想維護Timer ID時由系統產生,如果沒有Timer ID可用,函數返回0。TimerProc收到的hwnd爲NULL,KillTimer的第一個參數也要設爲NULL: