對於WINCE下有窗口的程序,可以通過簡單的使用API SetTimer來創建一個定時器。當定時器超時時窗口會收到一個WM_TIMER消息,我們在WM_TIMER消息中去做定時器超時處理即可。而對於無窗口的程序,因爲本身沒有消息循環,所以無法收到WM_TIMER消息,定時器也就無法正常工作了。
那麼無窗口程序如何通過SetTimer來定時呢?其實我們只需在無窗口程序裏的主線程中加一個消息循環,來處理WM_TIMER即可,參考代碼如下:
但對於無窗口的程序這樣還是比較麻煩的,使用定時器的時候還得添加消息循環的代碼,其實微軟還提供了一個API timeSetEvent來創建定時器,已實現更精確的定時,參考代碼如下:
最後別忘了調用timeKillEvent關閉定時器。