MFC中SetTimer函数
SetTimer函數(shù),創(chuàng)建或設(shè)置一個定時器,該函數(shù)創(chuàng)建的定時器與Timer控件效果一樣。
在MFC中,SetTimer被封裝在CWnd類中,SetTimer函數(shù)的原型為:
UINT SetTimer(UINT nlDEvent, UINT nElapse, void(CALLBACK EXPORT *lpfnTimer)(HWND, UINT, YINT, DWORD) )
當(dāng)使用SetTimer函數(shù)的時候,就會生成一個定時器,函數(shù)中nIDEvent指的是定時器的標(biāo)識,也就是名字。nElapse指的是時間間隔,也就是每隔多長時間觸發(fā)一次事件。第三個參數(shù)是一個回調(diào)函數(shù),在這個函數(shù)里,放入你想要做的事情的代碼,你可以將它設(shè)定為NULL,也就是使用系統(tǒng)默認(rèn)的回調(diào)函數(shù),系統(tǒng)默認(rèn)的是OnTimer函數(shù)。這個函數(shù)怎么生成的呢?你需要在需要計時器的類的生成OnTimer函數(shù):在ClassWizard里,選擇需要計時器的類,添加WM_TIMER消息映射,就自動生成OnTimer函數(shù)了。然后在函數(shù)里添加代碼,讓代碼實現(xiàn)功能。每隔一段時間就會自動執(zhí)行一次。
例: SetTimer(1,1000,NULL); 1:計時器的名稱; 1000:時間間隔,單位是毫秒; NULL:使用OnTimer函數(shù)。 當(dāng)不需要計時器的時候調(diào)用KillTimer(nIDEvent); 例如:KillTimer(1); 1.2 調(diào)用回調(diào)函數(shù) 此方法首先寫一個如下格式的回調(diào)函數(shù) void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime); 然后再用SetTimer(1,100,TimerProc)函數(shù)來建一個定時器,第三個參數(shù)就是回調(diào)函數(shù)地址。
總結(jié)
以上是生活随笔為你收集整理的MFC中SetTimer函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【初识SciPy库】
- 下一篇: java 开源 dht_P2P中DHT网