}
else
{
- // we have nothing to with it
+ // we have nothing to do with it
return FALSE;
}
HWND oldHandle = (HWND)GetHWND();
SendMessage(GetWinHwnd(parent->GetClientWindow()), WM_MDIDESTROY,
(WPARAM)oldHandle, 0);
+
+ if (parent->GetActiveChild() == (wxMDIChildFrame*) NULL)
+ ResetWindowStyle((void*) NULL);
+
invalidHandle = 0;
if (m_hMenu)
{
wxLayoutAlgorithm layout;
layout.LayoutMDIFrame(this);
+
+#if defined(__WXMSW__) && defined(__WIN95__)
+ // Need to do something else to get it to refresh properly
+ // when a client frame is first displayed; moving the client
+ // window doesn't cause the proper refresh. Just refreshing the
+ // client doesn't work (presumably because it's clipping the
+ // children).
+ // TODO: how to put this fix in wxWindows, and not the app.
+ // How about at least having a wxWindow::RedrawWindow?
+ wxMDIChildFrame* childFrame = GetActiveChild();
+ if (childFrame)
+ {
+ HWND hWnd = (HWND) childFrame->GetHWND();
+ ::RedrawWindow(hWnd, NULL, NULL, RDW_FRAME|RDW_ALLCHILDREN|RDW_INVALIDATE );
+
+ }
+#endif
}
}