From a068160f9f732794d7d373d3adb4979c97c2d663 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 9 Oct 2005 16:52:41 +0000 Subject: [PATCH] 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 --- src/msw/window.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 0874381013..04f6f307a4 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -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; -- 2.45.2