为了防止我的应用程序在用户移动窗口时更改窗口内容,我捕获消息WM_ENTERSIZEMOVE
/ WM_EXITSIZEMOVE
我在消息之间暂停应用程序。然而,有时我会收到WM_ENTERSIZEMOVE
but no WM_EXITSIZEMOVE
根本不。一个重现是:
- 打开窗口菜单
- 单击尺寸
- 不要调整窗口大小,而是单击窗口
请注意,窗口从未收到任何WM_EXITSIZEMOVE
.
在检查其工作原理时,我还检查了 Microsoft DirectX 示例,并且注意到了同样的问题。一旦您按照上面的重现步骤操作,示例应用程序看起来就冻结了(我刚刚使用 2009 年 3 月 SDK 中的 BasicHLSL 示例进行了尝试)。
应用程序预计将如何响应?是否还有其他应终止的条件“移动或调整模态循环的大小”?
我知道这已经很晚了,但它仍然可能对您有帮助 - 并且可能会帮助像我一样在搜索中找到它的其他人。
看来在您提到的情况下,当调整大小“取消”时会发送 WM_CAPTURECHANGED 消息。经过大量测试后,似乎它总是在 WM_EXITSIZEMOVE 之前(或应该是!)发送,并且在 WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE 之间没有其他阶段发送。
WM_CAPTURECHANGED 消息也会在其他各种时间发送,因此您应该仅在已发送 WM_ENTERSIZEMOVE 消息但未发送以下 WM_EXITSIZEMOVE 消息时对其做出反应。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)