定時器

函數:

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:

 

 

發佈了13 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章