2015-06-17 77 views
1

我有一些窗口。用户可以拖动它,调整大小等。在某些时候,可能会有一条消息应该显示在模态窗口中。我创建了一个像child这样的窗口并将父窗口设置为禁用。除了在孩子创建过程中拖动父窗口时的情况,一切都可以正常工作。我使用间谍来查看消息,发现在这种情况下,我的子窗口不会收到WM_ENTERSIZEMOVE消息。似乎父母的WM_ENTERSIZEMOVE阻止了一个孩子。我试图手动发送WM_EXITSIZEMOVE为父,但不幸的是,这不起作用。如果在父窗口调整大小时打开子窗口冻结

回答

1

在显示对话框之前,将WM_CANCELMODE消息发送到您的父窗口。

发送取消某些模式,如鼠标捕获。例如,当显示对话框或 消息框时, 系统会将此消息发送到活动窗口。某些功能也会将此消息明确地发送到指定的窗口,而不管它是否为 活动窗口。例如,EnableWindow函数在禁用指定窗口时发送此消息

+0

恭喜您击中20k。 – IInspectable

+0

@IInspectable谢谢! –

+0

@JonathanPotter不幸的是,这并没有帮助。更重要的是,当我显示一个子窗口时,我正在禁用父窗口,并且此操作在内部发送'WM_CANCELMODE'。 – nikitablack