1. 程式人生 > >VS2010 MFC Dialog設定定時器

VS2010 MFC Dialog設定定時器



首先建立一個按鈕,然後在按鈕處理程式中加入:


SetTimer(1,2000,NULL); //建立並啟動一個定時器,ID為1,執行間隔為2000毫秒




void CtimerDlg::OnBnClickedOk()
{
// TODO: 在此新增控制元件通知處理程式程式碼
//CDialogEx::OnOK();
//啟動定時器
SetTimer(1,2000,NULL); //1000毫秒 




}




然後我們為定時器新增響應訊息函式OnTimer()


類嚮導---訊息---WM_Timer
編輯OnTimer()函式在其中新增定時器觸發事件的實現程式碼。


void CtimerDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此新增訊息處理程式程式碼和/或呼叫預設值




MessageBox(L"測試");




CDialogEx::OnTimer(nIDEvent);
}


最後再建立一個按鈕命名為STOP,在其中新增釋放定時器的程式碼


void CtimerDlg::OnBnClickedButtonStop()
{
// TODO: 在此新增控制元件通知處理程式程式碼


KillTimer(1);  //釋放掉ID為1的定時器




}




如果有多個定時器,需要分別處理,我們可以像下面這樣處理:


void CtimerDlg::OnTimer(UINT_PTR nIDEvent)      
{      
      
    switch (nIDEvent)      
    {      
    case 1:      
        // 如果收到ID為1的定時器的訊息則呼叫func1函式      
        func1();      
        break;      
    case 2:      
        // 如果收到ID為2的定時器的訊息則呼叫func2函式      
        fun2();    
       break;     
    ......      
    default:      
        break;      
    }      
      
    CDialogEx::OnTimer(nIDEvent);      
}