c - c 中的 TimerProc 不工作?

标签 c winapi timer callback

我正在尝试为我的计时器编写回调。我这样定义 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 所述:

When you specify a TimerProc callback function, the default window procedure calls the callback function when it processes WM_TIMER. Therefore, you need to dispatch messages in the calling thread, even when you use TimerProc instead of processing WM_TIMER.

所以请确保您有一个 Message Loop运行。

关于c - c 中的 TimerProc 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074517/

相关文章:

php - PHP 中的 scandir() 太慢了

c - 初始化嵌套结构

c++ - 无法使用 LoadIcon WINAPI 从资源加载图标

c# - 如何将对象传递给计时器事件?

javascript - JavaScript 中的倒计时器没有停止

c - C 中函数返回类型冲突

c++ - 为什么 Win32 API 中不使用标准数据类型?

c - 串口ReadFile读取0字节返回true

c - 使用 `PostQuitMessage` 和只处理所有消息有区别吗?

c - 跳到时间量子结束