MFC中實時顯示系統(tǒng)時間_第1頁
MFC中實時顯示系統(tǒng)時間_第2頁
MFC中實時顯示系統(tǒng)時間_第3頁
MFC中實時顯示系統(tǒng)時間_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、F面給出在基于對話框的MFC應用程序的Edit控件中實時顯示系統(tǒng)時間的方法:首先來了解一下幾個主要的與定時器有關的函數(shù)。SetTimer()函數(shù)表示定義一個定時器。根據(jù)定義指定的窗口,在指定的窗口(CWnd)中實現(xiàn)OnTimer事件,這樣,就可以響應事件了。SetTimer有兩個函數(shù)。一個是全局的函數(shù):SetTimer()UINTSetTimer(HWNDhWnd,/handleofwindowfortimermessagesUINTnIDEvent,/timeridentifierUINTuElapse,/time-outvalueTIMERPROClpTimerFunc/addressof

2、timerprocedure);其中hWnd是指向CWnd的指針,即處理Timer事件的窗口類。說道窗口類(CWnd),我們有必要來看一下CWnd的繼承情況:CWnd有以下子類:CFrameWnd,CDialog,CView,CControIBar等類。這也意味這些類中都可以定義SetTimer事件。SetTimer()的另外一種定義為:UINTSetTimer(UINTnIDEvent,UINTnElapse,void(CALLBACKEXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD);nIDEvent:是指設置這個定時器的iD,即身份標志,這樣在OnTimer(

3、)事件中,才能根據(jù)不同的定時器,來做不同的事件響應。這個ID是一個無符號的整型。nElapse:是指時間延遲。單位是毫秒。這意味著,每隔nElapse毫秒系統(tǒng)調用一次Ontimer()。void(CALLBACKEXPORT*lpfnTimer)(HWND,UINT,UINT,DWORD):Specifiestheaddressoftheapplication-suppliedTimerProccallbackfunctionthatprocessestheWM_TIMERmessages.IfthisparameterisNULL,theWM_TIMERmessagesareplacedin

4、theapplicationsmessagequeueandhandledbytheCWndobject。意思指:指定應用程序提供的TimerProc回調函數(shù)的地址,來處里這個WM_TIMER事件。如果是NULL,則由定義這個Timer事件的CWnd對象來處理該Timer事件。它將WM_TIMER消息傳遞給這個對象,通過實現(xiàn)這個對象的OnTimer()事件來處理這個Timer事件。所以,一般情況下,我們將這個值設為NULL,由設置該定時器的對象中的OnTimer()函數(shù)來處理這個事件。對于SetTimer()可以在初始化當中添加!OnTimer()函數(shù)是響應用SetTimer()函數(shù)設定的時鐘

5、發(fā)送的時鐘消息的,你沒設定時鐘,就不會有時鐘消息,OnTimer()里的語句當然也不會被調用。為類添加WM_TIMER消息響應,會看到類中出現(xiàn)OnTimer(UINTnIDEvent)函數(shù)。KillTimer()同SetTimer()一樣,它也有兩個,一個是全局的:KillTimer(),另一個是CWnd的一個函數(shù)。聲明如下:/全局函數(shù)BOOLKillTimer(HWNDhWnd,/handleofwindowthatinstalledtimerUINTuIDEvent/timeridentifier);/CWnd函數(shù)BOOLKillTimer(intnIDEvent);這兩個函數(shù)表示的意思是

6、將ID為nIDEVENT的定時器移走,使其不再作用。其用法如同SetTimer()一樣。一般將KillTimer()語句放在需要移去定時器的地方或程序退出是的窗口銷毀過程中。在基于對話框的MFC應用程序中,添加一個Edit控件,ID標號為IDC_EDIT_TIME。在OnInitDialog()函數(shù)中添加下面語句:SetTimer(1,1OOO,NULL);/1OOO毫秒發(fā)生一次定時器事件為類添加WM_TIMER消息響應函數(shù)OnTimer(UINT_PTRnIDEvent):voidCTestDlg:OnTimer(UINT_PTRnIDEvent)/TODO:Addyourmessagehandlercodehereand/orcalldefaultCDialog:OnTimer(nIDEvent);CStringstr;CTimetheTime=CTime:GetCurrentTime();str.Format(%02d:%02d:%02d,theTime.GetHour(),theTime.GetMinute(),theTime.GetSecond();SetDlgItemText(IDC_EDIT_TIME,str);為類添加WM_DESTROY消息響

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論