第八章 定時器

    1、Microsoft Windows定時器是一種輸入設備,它週期性地在每經過一個指定的時間間隔後就通知應用程序一次。應用程序將時間間隔告訴Windows,然後Windows給應用程序發送週期性發生的WM_TIMER消息以表示時間到了。

    2、定時器入門

    應用程序通過呼叫SetTimer函數爲Windows程序分配一個定時器。SetTimer有一個時間間隔範圍爲1毫秒到4,294,967,295毫秒(將近50天)的整數型態參數,指示Windows每隔多久時間給應用程序發送WM_TIMER消息。當應用程序用完定時器時,呼叫KillTimer函數來停止定時器消息。在處理WM_TIMER消息時,您可以通過呼叫KillTimer函數來編寫一個[限用一次]的定時器。

    3、定時器消息不是異步的

    WM_TIMER消息不是異步的,它放在正常的消息隊列中,和其他消息排列在一起。WM_TIMER消息和WM_PAINT消息的處理非常類似,這兩個消息都是低優先級的,程序只有在消息隊列中沒有其它消息時才接受它們。

    4、定時器的使用

    如果需要在整個程序執行期間都是用定時器,那麼您將得從WinMain函數中或者在處理WM_CREATE消息時呼叫SetTimer,並在推出WinMain或響應WM_DESTROY消息時呼叫KillTimer。
    方法一是把WM_TIMER消息發送到通常的窗口消息處理程序;方法二是讓Windows直接將定時器消息發送給您程序的另一個函數,接收這些定時器消息的函數被稱爲callback函數,這是一個在您的程序之中但是由Windows呼叫的函數。方法三類似於方法二,只是傳遞給SetTimer的hwnd參數被設定爲NULL,並且第二個參數(通常爲定時器ID)被忽略了,最後,此函數傳回定時器ID。

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