定时器的使用无非一个创建定时器函数SetTimer(ID_TIMER, TimeDelay, NULL);一个接收消息,并处理函数
.h
afx_msg void OnTimer(UINT nIDEvent);
.cpp
void CMyDialog::OnTimer(UINT nIDEvent)
{// TODO: Add your message handler code here and/or call default
if (nIDEvent == ID_TIMER)
{
//Write u want
CDialog::OnTimer(nIDEvent);
}
一个销毁定时器函数KillTimer(ID_TIMER);
这三个函数所能达到的效果就是从你SetTimer开始,经过TimeDelay时间后,执行OnTimer的事件.
demo 1;
.h
afx_msg void OnTimer(UINT nIDEvent);
.cpp
ON_WM_TIMER()
//触发
KillTimer(ID_TIMER);
SetTimer(ID_TIMER, 500, NULL);
void CMyDialog::OnTimer(UINT nIDEvent)
{// TODO: Add your message handler code here and/or call default
if (nIDEvent == ID_TIMER)
{
//Write u want
CDialog::OnTimer(nIDEvent);
}
问题:时间不准确,具体自行测试感受demo 2;
.h
afx_msg void OnTimer(UINT nIDEvent);
.cpp
ON_WM_TIMER()
//触发
KillTimer(ID_TIMER);
SetTimer(ID_TIMER, 500, NULL);
void CMyDialog::OnTimer(UINT nIDEvent)
{// TODO: Add your message handler code here and/or call default
if (nIDEvent == ID_TIMER)
{
//Write u want
KillTimer(ID_TIMER);
CDialog::OnTimer(nIDEvent);
}
时间准确
本文介绍了VC++中定时器的使用,包括SetTimer函数用于创建定时器,设置延迟时间,以及OnTimer函数处理定时事件。当定时时间到后,OnTimer事件会被触发。示例代码展示了如何在事件处理后销毁定时器,以防止重复执行。通过KillTimer函数可以停止定时器。
4156

被折叠的 条评论
为什么被折叠?



