VS2010 MFC Dialog設定定時器
阿新 • • 發佈:2019-01-10
首先建立一個按鈕,然後在按鈕處理程式中加入:
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);
}