加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在win32程序中调用DispatchMessage是必要的吗?

发布时间:2020-12-14 04:09:53 所属栏目:Windows 来源:网络整理
导读:Win32程序通常有一个消息循环,循环调用GetMessage或PeekMessage,然后调用DispatchMessage将消息分派到相关窗口的窗口. 但有没有必要真正做到这一点?我可以直接在消息循环中直接查看MSG对象并执行其中所需的操作而无需调用DispatchMessage吗?我说的是我有一
Win32程序通常有一个消息循环,循环调用GetMessage或PeekMessage,然后调用DispatchMessage将消息分派到相关窗口的窗口.

但有没有必要真正做到这一点?我可以直接在消息循环中直接查看MSG对象并执行其中所需的操作而无需调用DispatchMessage吗?我说的是我有一个窗口而没有其他窗口控件的情况,例如,如果窗口仅用作direct3d显示窗口,那么消息将始终指向唯一的窗口.

大多数情况下,我只是好奇,但也可能导致我的代码的某些方面也更清晰.

您调用DispatchMessage将消息传递到适当的窗口,到其“窗口过程”.你认为你只有一个窗口,但它真的是唯一一个窗口吗? COM将创建辅助窗口,其他子系统也可能创建辅助隐藏窗口,谁将发送发布到共享消息队列的消息并发送到这些窗口.无需仔细考虑这些细节,您就可以使用API??来发送它们.而且你必须这样做,因为那些子系统依赖于消息泵的存在.

间谍Windows SDK工具可以帮助您查看您真正拥有多少个窗口.

如果您确实拥有唯一的窗口,那么无论您是从DispatchMessage内部调用处理程序还是直接通过消息泵调用处理程序,都没有多大区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读