use EnumChildWindows to enumerate child windows in your application , gain the child window's handle , and close it . BOOL EnumChildWindows( HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam );//CALLBACK function BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) { ::PostMessage(hwndChild,WM_CLOSE,0,0); return TRUE; }
while (wnd)
{
SendNotifyMessage( wnd->m_hWnd, WM_SYSCOMMAND, SC_CLOSE, 0 );
wnd = GetWindow( GW_HWNDNEXT );
}
会出现死循环,为什么一直都可以找到句柄呢?
还有,如何关闭已经打开的模态窗口?
//我打开了两个非模态窗口,一个模态窗口,结果关闭了两个非模态窗口,另外一个模态窗口还是没有关闭。请帮忙解决一下。谢谢。
BOOL EnumChildWindows(
HWND hWndParent,
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);//CALLBACK function
BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam)
{
::PostMessage(hwndChild,WM_CLOSE,0,0);
return TRUE;
}
再寻求帮助,谢谢。