日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC SetTimer函数的用法

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC SetTimer函数的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

<span style="color:#ff0000;">OnTimer()函數是響應用SetTimer()函數設定的時鐘發送的時鐘消息的,你沒設定時鐘,就不會有時鐘消息,OnTimer()里的語句當然也不會被調用。</span>

Settimer是設置一個計時器并開始執行計時器Ontimer中的代碼,Ontimer是計時器所執行的代碼。KillTimer用于停止計時器。 Settimer是設置,Ontimer是響應Settimer消息的。

????SetTimer函數的用法?
1??函數原型及變形

SetTimer這個API函數的原型?
UINT_PTR SetTimer(?
HWND hWnd, //?
窗口句柄?
UINT_PTR nIDEvent, //?定時器ID,多個定時器時,可以通過該ID判斷是哪個定時器?
UINT uElapse, //?時間間隔,單位為毫秒?
TIMERPROC lpTimerFunc //?回調函數?
);

注意:設置第二個參數時要注意,如果設置的等待時間比處理時間短,程序就會出問題了。
回調函數:在這個函數里,放入你想要做的事情的代碼,你可以將它設定為NULL?也就是使用系統默認的回調函數,系統默認認的是onTime函數。
例如?
SetTimer(m_hWnd,1,1000,NULL); //一個1秒觸發一次的定時器?
MFC程序中SetTimer被封裝在CWnd類中,調用就不用指定窗口句柄了?

于是SetTimer函數的原型變為:?
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))?,用法如:SetTimer(1,1000,NULL);

用法如下:SetTimer(1,1000,NULL);1:計時器的名稱;1000:時間間隔,單位是毫秒;NULL:使用onTime函數


2)函數生成方法

ClassWizard里,選擇需要計時器的類,添加WM_TIME消息映射,就自動生成onTime函數了。然后在函數里添加代碼,讓代碼實現功能。?
每隔一段時間就會自動執行一次。

在每次時間到1s時會觸發WM_TIMER消息,其消息響應函數如下: void CXXX::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息處理程序代碼和/或調用默認值 // 此處加入如下代碼就好了: switch() { case 1: //做該做的事情 //當不需要的時候在此處調用KillTimer(1); break; default: break; } CDialog::OnTimer(nIDEvent); }

3?回調函數的格式
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);?

二.?多個Timer
把ID的值設為〉1的數,如:SetTimer(3,500,NULL);
由WINDOWS會協調他們的然onTimer函數要在函數體內添加每一個timer的處理代碼:?

onTimer(nIDEvent) { switch(nIDEvent) { case 1:........; break; case 2:.......; break; case 3:......; break; }

三、KillTimer:取消定時器不再使用定時器后,我們應該調用KillTimer來取消定時。

???????KillTimer的原型:

??????????????BOOL KillTimer(HWND hWnd,????????? //?窗口句柄

?????????????????????UINT_PTR uIDEvent?? // ID);

???????在MFC程序中我們可以直接調用KillTimer(int nIDEvent)來取消定時器




總結

以上是生活随笔為你收集整理的MFC SetTimer函数的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。