don't call ::ShowWindow() if don't have HWND yet

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2005-10-09 16:52:41 +00:00
parent dee1a63ff5
commit a068160f9f

View File

@ -704,12 +704,23 @@ bool wxWindowMSW::Show(bool show)
return false;
HWND hWnd = GetHwnd();
int cshow = show ? SW_SHOW : SW_HIDE;
::ShowWindow(hWnd, cshow);
if ( show && IsTopLevel() )
// we could be called before the underlying window is created (this is
// actually useful to prevent it from being initially shown), e.g.
//
// wxFoo *foo = new wxFoo;
// foo->Hide();
// foo->Create(parent, ...);
//
// should work without errors
if ( hWnd )
{
wxBringWindowToTop(hWnd);
::ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
if ( show && IsTopLevel() )
{
wxBringWindowToTop(hWnd);
}
}
return true;