multiple ::setTimer in c++
multiple ::setTimer in c++
我需要多个使用具有相同EventID的::SetTimer函数的计时器。使用:CreateWindow创建多个窗口句柄,然后将每个计时器分配给创建的窗口句柄,这可能是一个好主意吗?还有其他选择吗?
编辑:无论如何,我只想知道这里发生了什么:
int eventID = 0;
hWnd1 = ::CreateWindow(...);
hWnd2 = ::CreateWindow(...);
::SetTimer(hWnd1, eventID, ...);
::SetTimer(hWnd2, eventID, ...);
每个hWnd都有自己的事件ID列表吗?它们是独立处理的吗?我不想讨论这个设计是否合理。。
来源http://msdn.microsoft.com/en-us/library/ms644906%28v=vs.85%29.aspx
计时器标识符nIDEvent为特定于关联窗口。另一个窗口可以有自己的计时器其具有与另一个窗口拥有的计时器。这个计时器是不同的。
如果您使用相同的EventID,您应该可以使用相同的计时器,但间隔不同。你可以简单地用KillTimer()杀死旧的一个,然后用SetTimer(()创建另一个,它或多或少会触发。如果你遇到了不可能的情况,那么你的程序设计很可能存在缺陷。
考虑使用不同的EventID,并向我们提供更多信息,说明为什么您认为以这种方式进行操作是必要的。如果随机窗口只是为了让定时器消息注册到它们,那么你很可能不想创建它们。这听起来像是一个混乱的破解,会产生不必要的计算和低效的开销。
当然,计时器实际上并不需要您将hWnd与之关联。hWnd是可选的,您可以将计时器与回调(lpTimerFunc)关联。
您真的想要两个窗口吗?您可以在一个窗口中设置两个计时器。您可以使用WM_timer处理程序的ID参数(MFC中的OnTimer())来识别触发的计时器。如果你真的不需要高精度计时器,请考虑这种方式。
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp