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