Windows各種計時器

來源:互聯網
上載者:User

(一):OnTimer類

1.開啟對應對話方塊的類嚮導ClassWizard。

2.在訊息映射MessageMaps中添加訊息Message:WM_TIMER。

3.程式碼中將自動添加函數OnTimer(UINT nIDEvent),在該函數內編寫代碼實現計時器功能。

函數代碼一般寫在switch...case中,nIDEvent表示計時器ID號,從而區分不同計時器的實現內容。

若不使用switch...case結構,則表示實現ID為1的計時器功能。

整個函數代碼如下:

void CCountDown::OnTimer(UINT nIDEvent){ switch (nIDEvent) { case 1:  {    //代碼實現   break;  } default:  break; } CDialog::OnTimer(nIDEvent);}

4.在要開始計時器的地方調用:

SetTimer(1,1000,NULL);//第一個參數表示計時器的ID;

                        第二個參數表示間隔時間(ms);

                        第三個表示調用的函數,NULL表示預設調用OnTimer函數。

5.在要結束計時器的地方調用:

KillTimer(1);)        //參數表示計時器的ID


(2):ontimer執行個體:

(1)   建立一個基於對話方塊的應用程式。

(2)   在對話方塊介面添加一個文字框和兩個按鈕。

(3)   文字框添加一個變數m_nTime。

(4)   雙擊“設定定時器”按鈕,添加如下代碼:

void CTimeDlg::OnButton1(){       // TODO: Add your control notification handler code here       UpdateData(false);       //取消定時器       KillTimer(1);       //設定定時器       SetTimer(1,1000,NULL);}(5)   雙擊“取消定時器”按鈕,添加如下代碼:void CTimeDlg::OnButton1(){       // TODO: Add your control notification handler code here       UpdateData(false);       //取消定時器       KillTimer(1);}(6)   添加一個靜態變數n,申明如下:static n=0;(7)   添加WM_TIMER事件,方法為:按右鍵對話方塊空白部分—>Event,在彈出的對話方塊左邊選擇WM_TIMER雙擊,右邊就出現WM_TIMER,再雙擊添加如下代碼:void CTimeDlg::OnTimer(UINT nIDEvent){       // TODO: Add your message handler code here and/or call default       if(nIDEvent==1){              n++;              m_nTime=n;              UpdateData(false);       }       CDialog::OnTimer(nIDEvent);} 

運行結果:

點擊“設定定時器”文字框數字每隔1秒自動增1,點擊“取消定時器”,數字停止增加,再點擊“設定定時器”,數字接著繼續增加。如果每次設定都從0重新開始,只要在“設定定時器”按鈕把n值重新賦值0即可。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.