版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、VC定時器定時器在VC中,定時有三種方法,一是利用WM_TIMER消息的API函數(shù),二是使用多媒體定時器,三是多線程定時器(不知道是不是可以這樣分?。?、WM_TIMERSetTimer函數(shù)是用來設立一個定時器,SetTimer函數(shù)的原型如下:UINT_PTRSetTimer(HWNDhWnd窗口句柄UINT_PTRnIDEvent定時器IDUINTuElapse時間間隔單位為毫秒TIMERPROClpTimerFunc回調函數(shù))第一
2、個參數(shù)是窗口句柄,在MFC中,SetTimer函數(shù)被封裝在CWnd類中,調用時不用指出窗口句柄;第二個參數(shù)是定時器ID,在啟用多個定時器時,用來標識各個不同的定時器,在不使用MFC的情況下,當接收到WM_TIMER消息時,WPARAMwParam就是這個ID(API的東西,都忘得差不多了,_);第三個參數(shù)為時間間隔,也就是回調函數(shù)的調用周期,單位是毫秒;第四個參數(shù)是回調函數(shù),當設為NULL時,調用系統(tǒng)默認的回調函數(shù)。這個默認的回調函數(shù)是
3、OnTimer,可以在需要定時器的類中添加,添加時只要在ClassWizard里添加WM_TIMER的消息映射就可以了。函數(shù)的返回值為定時器ID。這個函數(shù)的使用有點像定時器中斷,SetTimer就是開中斷,回調函數(shù)就是中斷子程,既然有開中斷就一定要有關中斷,在VC里面用KillTimer來取消定時器。KillTimer函數(shù)的原型如下:BOOLKillTimer(HWNDhWnd窗口句柄UINT_PTRuIDEventID)switch(
4、nTimerid)case1:處理ID為1的定時器Timer1Proc()breakcase2:處理ID為2的定時器Timer2Proc()break最后不要忘了取消掉定時器KillTimer(1)KillTimer(2)差點忘了說注意事項了,回調函數(shù)的處理時間一定不能夠長于定時器的時間間隔,否則的話,hiahia,后果很嚴重。。。、多媒體定時器前面提到的通過SetTimer來設置定時器的方法,操作起來很簡單,但是精度不高,只能用于精度
5、要求不高的場合,在精度要求稍高的場合中,可以用多媒體定時器。多媒體定時器有兩種使用方法。1)timeGetTime函數(shù):定時精度為ms級,返回從Windows啟動開始所經過的時間。該函數(shù)是通過查詢的方式來進行定時的,因此在程序中,必須建立一個循環(huán)來不斷地查詢以便進行定時,所以這個函數(shù)通常都在循環(huán)(dowhile或者f循環(huán))中。2)timeSetEvent函數(shù),原型如下:MMRESULTtimeSetEvent(UINTuDelay,UI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論