NO IMAGE

轉自:http://blog.sina.com.cn/s/blog_7656589b0101g30h.html

OnTimer()函式在MFC中新增的方法:使用系統預設的回撥函式,系統預設認的是onTime()函式。這個函式怎麼生成的呢?你需要在需要計時器的類的生成onTime函式:在ClassWizard裡,選擇需要計時器的類,新增WM_TIME訊息對映,就自動生成onTime函式了。然後在函式裡新增程式碼,讓程式碼實現功能。每隔一段時間就會自動執行一次。例: SetTimer(1,1000,NULL); 其中,1為計時器的名稱; 1000為時間間隔,單位是毫秒; NULL指使用onTime函式。

UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
當使用SetTimer函式的時候,就會生成一個計時器。函式中nIDEvent指的是計時器的標識,也就是名字。nElapse指的是時間間隔,也就是每隔多長時間觸發一次事件。第三個引數是一個回撥函式。
當不需要計時器的時候呼叫KillTimer(nIDEvent); 例如:KillTimer(1); 或許你會問,如果我要加入兩個或者兩個以上的 timer怎麼辦? 繼續用SetTimer函式吧,上次的timer的ID是1,這次可以是2,3,4。。。。 SetTimer(2,1000,NULL); SetTimer(3,500,NULL);  當然onTimer函式體也要發生變化,要在函式體內新增每一個timer的處理程式碼: onTimer(nIDEvent) { switch(nIDEvent) { case 1:……..; break; case 2:…….; break; case 3:……; break; } }
小技巧:可以使用#define定義不同的計時器ID值。
#define TIME_SEC 1
      #define TIME_MIN 2
     然後呼叫SetTimer設定兩個計時器
      SetTimer (hwnd, TIMER_SEC, 1000, NULL) ;SetTimer (hwnd, TIMER_MIN, 600, NULL)