天天看点

vc定时器用法

定时器的使用无非一个创建定时器函数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);

}

时间准确