談談MFC中爲dialog添加計時器。
很簡單,比如在CMineDlg中。
在CMineDlg.h中。聲明如下。
public:
int mi_Timerl
afx_msg void OnTimer(UINT_PTR nIDEvent);
在CMineDlg.cpp中
BEGIN_MESSAGE_MAP(CMineDlg, CDialog)
ON_WM_TIMER()
END_MESSAGE_MAP()
void CMineDlg::MouseDownVsflexgridn1Test(short Button, short Shift, float X, float Y)
{
if (Button == 1) // left mouse clicked
{
mi_Timer = SetTimer(1, 1000, NULL);
}
else if (Button == 2)// right mouse clicked
{
KillTimer(mi_Timer);
}
}
void CMineDlg::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
mi_TimeRecord++;// 在這裏做你計時想做的事情。
UpdateData(FALSE);
}
在你需要開始計時的地方設置一下。
mi_Timer = SetTimer(1, 1000, NULL);這樣系統就會每隔1秒調用一次OnTimer函數。
如果你想停止調用OnTimer函數,在你需要停止的地方取消一下即可:
KillTimer(mi_Timer);
上面的程序表示按下左鍵開始計時每一秒調用一下OnTimer()函數。按下右鍵停止計時。不再調用OnTimer()函數。