天天看點

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);

}

時間準确