15,466
社区成员
发帖
与我相关
我的任务
分享DWORD tidTimer;
UINT uElapse;
unsigned __stdcall TimerThreadProc(void *param)
{
MSG msg;
UINT_PTR hTimer;
if ((hTimer = SetTimer(NULL, NULL, uElapse, 0)) == 0)
MessageBox(NULL, L"Set Timer failed.", L"Error", MB_OK);
while (GetMessage(&msg, NULL, 0, 0))
{
switch(msg.message)
{
case WM_TIMER:
//...
break;
default:
break;
}
}
if (hTimer)
KillTimer(NULL, hTimer);
return 0;
}
_beginthreadex(NULL, 0, TimerThreadProc, NULL, 0, &tidTimer);
...
PostThreadMessage(tidTimer, WM_TIMER, 0, 0); //随后的某个事件处理中启动定时器
bool PauseTimer=false;//暂停标志
while (GetMessage(&msg, NULL, 0, 0))
{
switch(msg.message)
{
case WM_TIMER:
if(PauseTimer) break;//加上这个
//...
break;
default:
break;
}
}