Set*_*gie 3 c c++ winapi application-close
像许多应用程序一样,我创建了多个窗口 我不知道也无法跟踪已经创建了多少个窗口,所以我不知道什么时候没有.
我的问题是,当所有窗口都关闭时,除非我PostQuitMessage以某种方式调用,应用程序一直运行,没有打开窗口(显然).我无法PostQuitMessage在消息处理程序中调用响应WM_DESTROY消息,因为当第一个窗口关闭时,它将关闭所有窗口,即使还有其他20个窗口仍然打开.
我的问题是如何知道何时调用PostQuitMessage(0)实际终止应用程序?
如果由于某种原因,你真的无法计算应用程序打开的窗口数量,你仍然可以使用EnumThreadWindows(),当没有更多的窗口时,你就可以了PostQuitMessage().如果你有多个线程,请确保通过这些线程进行枚举.
来自MSDN
BOOL WINAPI EnumThreadWindows(
__in DWORD dwThreadId,
__in WNDENUMPROC lpfn,
__in LPARAM lParam
);
Run Code Online (Sandbox Code Playgroud)