谈谈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()函数。