在MFC中是否有等效的OnModal消息?

时间:2015-02-20 17:45:35

标签: winapi mfc modal-dialog

我的MFC应用程序有多个顶级(桌面的父级)窗口,其中任何一个都可以托管可以启动模式对话框的外部应用程序。有没有办法让其他顶级窗口在任何其他窗口变为模态时获得通知?

我的具体问题是我的一个窗口是托管嵌入式PDF查看器,当用户点击打印时,只有托管查看器的窗口被锁定,而不是其他窗口。

1 个答案:

答案 0 :(得分:1)

当显示模态对话框时,将为父级调用EnableWindow(FALSE)。它现在已停用,不接受任何鼠标输入。它也不会获得键盘焦点。

当调用EnableWindow(FALSE)时,{Pamp = = FALSE的WM_ENABLE被发送到窗口。

当您的父母收到此消息时,您也可以为所有其他窗口调用EnableWindow(FALSE)。递归可能是一个问题,但您可以使用私有窗口消息或标志来防止这种情况。

在模态对话框关闭之前,再次调用EnableWndow(TRUE)并再次发送带有wParam == TRUE的WM_ENABLE。