我想给我的计时器写一个回拨。我对TimerProc的定义如下:
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
//body of callback
}
然后SetTimer定义如下:
myTimer = SetTimer(NULL,Timer_ID,30000,TimerProc);
我的问题是,回调在超过30秒的时间内从未被调用过。
谢谢你的帮助。
最佳答案
SetTimer
通过向默认窗口过程发送WM_TIMER
消息来工作。因此,正如MSDN所述:
指定TimerProc回调函数时,默认窗口过程在处理WM_TIMER时调用回调函数。因此,您需要在调用线程中分派消息,即使您使用TimerProc而不是处理WM_TIMER。
因此,请确保您有一个Message Loop运行。