3
我们有一个对话框X
,可以通过不同的线程(也是主线程)打开模态。多个模式X
对话,同时从不同的线程是可能的。MFC,如何从主窗口关闭模态对话框?
如果主窗口处理SC_CLOSE
消息,我们要关闭所有X
(仅限于X
)模态对话框。
问题是;在主窗口中,当它接收到SC_CLOSE
消息时,我们如何关闭所有对话框模式X
?只有X
!所以,PostQuitMessage
没有帮助,因为它关闭了整个应用程序,我们不想关闭应用程序,如果打开其他模式对话框如Y, Z ...
。
信息:主窗口可以处理SC_CLOSE
消息,当我们从主线程打开模态对话框X
也从其他线程。并且X
没有子模态窗口。
[跨进程父/子或拥有者/拥有的窗口关系是否合法?](https://blogs.msdn.microsoft.com/oldnewthing/20130412-00/?p=4683)*“是的,这在技术上是合法的,在技术上也是合法的。“* – IInspectable
@IInspectable我们的对话就像一个消息框,所以我们没有真正的管理问题。看起来我的问题看起来像:[链接](http://stackoverflow.com/questions/17427103/windows-messagebox-ignoring-wm-close),但我不想关闭'X'对话框。 –
你不明白这个问题。您正在使用模式对话框,并且拥有另一个线程拥有的所有者窗口。如果您专门实施了此安全措施,则仅支持此方案。由于您使用MFC,因为您无法访问消息分派代码,所以这是不可能的。这是烘烤到MFC的实现。你在做什么是不安全的,不能安全。 – IInspectable