C++ 定时器的用法:SetTimer和Ontimer
生活随笔
收集整理的這篇文章主要介紹了
C++ 定时器的用法:SetTimer和Ontimer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要: Settimer是設置一個計時器并開始執行計時器Ontimer中的代碼,Ontimer是計時器所執行的代碼。 KillTimer用于停止計時器。 Settimer是設置,Ontimer是響應Settimer消息的。
SetTimer函數的用法
1)用WM_TIMER來設置定時器
先請看SetTimer這個API函數的原型
UINT_PTR?SetTimer(??????????????HWND?hWnd,//和定時器相關聯的窗口?????UINT_PTR?nIDEvent,//一個非0的數字標志這個定時器?????UINT?uElapse,//指定時間間隔,以毫秒為單位?????TIMERPROC?lpTimerFunc//一般指定為null? );當在MFC的工程中如下:?
UINT_PTR?SetTimer(??????????????UINT_PTR?nIDEvent,//一個非0的數字標志這個定時器?????UINT?uElapse,//指定時間間隔,以毫秒為單位?????TIMERPROC?lpTimerFunc//一般指定為null? );用法如下:
SetTimer(1,1000,NULL);參數:
1:計時器的名稱;
1000:時間間隔,單位是毫秒;
NULL:使用onTime函數。
在每次時間到1s時會觸發WM_TIMER消息,其消息響應函數如下:?
void?CXXX::OnTimer(UINT_PTR?nIDEvent)?{?//?TODO:?在此添加消息處理程序代碼和/或調用默認值?????????//?此處加入如下代碼就好了:?????????switch(){?????????case?1:???????????????//做該做的事情?????????????????//當不需要的時候在此處調用KillTimer(1);???????????????break;?????????default:???????????????break;?????????}?CDialog::OnTimer(nIDEvent);? }當不需要計時器的時候調用KillTimer(nIDEvent);
KillTimer(1);
2)如果我要加入兩個或者兩個以上的 timer怎么辦?
繼續用SetTimer函數吧,上次的timer的ID是1,這次可以是2,3,4。。。。
SetTimer(2,1000,NULL);SetTimer(3,500,NULL);嗯,WINDOWS會協調他們的。當然onTimer函數體也要發生變化,要在函數體內添加每一個timer的處理代碼:
onTimer(nIDEvent){switch(nIDEvent){case?1:........;break;case?2:.......;break;case?3:......;break;} }總結
以上是生活随笔為你收集整理的C++ 定时器的用法:SetTimer和Ontimer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows平台下vlc编译
- 下一篇: 如何使用SetTimer MFC 够详细