是否可以使SetTimer()
仅发送一条WM_TIMER
消息,并且每次指定的时间过去都不发送新消息?当我收到KillTimer()
消息来停止计时器时,我正在使用WM_TIMER
。我应该继续这样做还是有另一种方法可以自动指定?
答案 0 :(得分:3)
不,SetTimer
总是重复。只需在WM_TIMER
处理程序中将其删除即可停止发送另一个处理程序。
答案 1 :(得分:3)
SetTimer()
仅创建一个周期性计时器。使其成为一次性计时器的唯一方法是在第一个WM_TIMER
消息上终止计时器,就像你现在一样。
否则,更改您的计时器逻辑,以便您可以使用CreateWaitableTimer()
或timeSetEvent()
,这两者都可以创建一个真正的一次性计时器。