我们有一个名为
我们希望在主窗口处理
问题是:如何从主窗口关闭所有模态
信息:当我们从主线程以及其他线程打开模态
X
的对话框,可以由不同的线程(包括主线程)作为模态打开。同时从不同的线程打开多个模态X
对话框是可能的。我们希望在主窗口处理
SC_CLOSE
消息时关闭所有X
(仅限X
)模态对话框。问题是:如何从主窗口关闭所有模态
X
对话框,当它接收到SC_CLOSE
消息?仅限X
!因此,PostQuitMessage
无法帮助我们,因为它会关闭整个应用程序,我们不想关闭应用程序,如果其他模态对话框如Y,Z ...
已经打开。信息:当我们从主线程以及其他线程打开模态
X
对话框时,主窗口可以处理SC_CLOSE
消息。并且X
没有子模态窗口。
X
对话框。 - Yusuf R. KaragözX
对话框可以以线程安全的方式在一个静态全局集合中注册,那么我能关闭这些对话框吗? - Yusuf R. KaragözWM_CLOSE
,而不是SC_CLOSE
。您也可以自己发送它。当然,因为您有一个多线程设置,如果您在任何给定点告诉消息框关闭,我不确定会发生什么... - andlabsHWND
并通过关键段进行保护。对于对话框X,在WM_INITDIALOG
中添加它的HWND
到此数据库中,在WM_DESTROY
中从数据库中删除HWND
。当需要全部关闭时,枚举DB中的HWND(s)
并为所有设置WM_CLOSE
。同时将一些退出标志设置为真-以防某个线程开始创建此对话框X,但尚未在DB中注册自己-当退出标志设置时-仅在WM_INITDIALOG
中销毁自身。 - RbMm