gpt4 book ai didi

windows - 具有唯一 ID 的 SetTimer

转载 作者:可可西里 更新时间:2023-11-01 10:45:59 25 4
gpt4 key购买 nike

我想为一个窗口设置一个定时器,但我不知道那个窗口是否已经有定时器在运行。如果是这样,我不想覆盖其中任何一个,所以我需要选择一个免费的计时器 ID。 MSDN 对我的情况没有帮助,他们描述了几乎所有的排列,除非你有一个 hwnd 并且不想更换计时器。

因此,如果可以将 0 或其他内容作为 nIDEvent 并让 Windows 自动创建一个新的 uniqe id,或者是否有某种方法可以列出当前正在运行的计时器以便我可以避免使用其中的任何一个?

SetTimer 的 MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85%29.aspx

最佳答案

正如@Jonathan Potter 所说,你可以这样写:

VOID CALLBACK TimerCallback(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
BOOL bRetKill = ::KillTimer(NULL, idEvent);
// do something
}

void CSomeModel::StartTimer()
{
UINT_PTR hSetTimer = ::SetTimer(NULL, 0, 1000, TimerCallback);
}

每次调用::SetTimer 时,idEvent ID 都是唯一的。

关于windows - 具有唯一 ID 的 SetTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com