2015-06-17 88 views
1

我有一些窗口。用戶可以拖動它,調整大小等。在某些時候,可能會有一條消息應該顯示在模態窗口中。我創建了一個像child這樣的窗口並將父窗口設置爲禁用。除了在孩子創建過程中拖動父窗口時的情況,一切都可以正常工作。我使用間諜來查看消息,發現在這種情況下,我的子窗口不會收到WM_ENTERSIZEMOVE消息。似乎父母的WM_ENTERSIZEMOVE阻止了一個孩子。我試圖手動發送WM_EXITSIZEMOVE爲父,但不幸的是,這不起作用。如果在父窗口調整大小時打開子窗口凍結

回答

1

在顯示對話框之前,將WM_CANCELMODE消息發送到您的父窗口。

發送取消某些模式,如鼠標捕獲。例如,當顯示對話框或 消息框時, 系統會將此消息發送到活動窗口。某些功能也會將此消息明確地發送到指定的窗口,而不管它是否爲 活動窗口。例如,EnableWindow函數在禁用指定窗口時發送此消息

+0

恭喜您擊中20k。 – IInspectable

+0

@IInspectable謝謝! –

+0

@JonathanPotter不幸的是,這並沒有幫助。更重要的是,當我顯示一個子窗口時,我正在禁用父窗口,並且此操作在內部發送'WM_CANCELMODE'。 – nikitablack