X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8082a771dbd07ba4a1868ca22bb5e6c62c2a653a..2b813b73cd79cfb4d275e9628811f379e8c5ee39:/src/msw/mdi.cpp diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 502ad620de..3c235e7f3d 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes +// Name: src/msw/mdi.cpp +// Purpose: MDI classes for wxMSW // Author: Julian Smart // Modified by: // Created: 04/01/98 @@ -304,7 +304,7 @@ void wxMDIParentFrame::SetWindowMenu(wxMenu* menu) } } -void wxMDIParentFrame::OnSize(wxSizeEvent& event) +void wxMDIParentFrame::OnSize(wxSizeEvent&) { if ( GetClientWindow() ) { @@ -722,6 +722,15 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, //SetWindowLong(GetHwnd(), 0, (long)this); wxModelessWindows.Append(this); + + // Necessary to make ResetWindowStyle() work + // and will be called eventually anyway + Activate(); + + // Without this, a maximized child will still + // a double border around the child + ResetWindowStyle((void *)NULL); // Set the Client ExStyle right + return TRUE; } @@ -1094,7 +1103,7 @@ bool wxMDIChildFrame::ResetWindowStyle(void *vrect) // we want to test whether there is a maximized child, so just set // dwThisStyle to 0 if there is no child at all DWORD dwThisStyle = pChild - ? ::GetWindowLong(GetWinHwnd(pChild), GWL_STYLE) : NULL; + ? ::GetWindowLong(GetWinHwnd(pChild), GWL_STYLE) : 0; DWORD dwNewStyle = dwStyle; if ( dwThisStyle & WS_MAXIMIZE ) dwNewStyle &= ~(WS_EX_CLIENTEDGE); @@ -1140,7 +1149,7 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) ccs.hWindowMenu = (HMENU) parent->GetWindowMenu()->GetHMenu(); ccs.idFirstChild = wxFIRST_MDI_CHILD; - DWORD msStyle = WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN; + DWORD msStyle = MDIS_ALLCHILDSTYLES | WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN; if ( style & wxHSCROLL ) msStyle |= WS_HSCROLL; if ( style & wxVSCROLL ) @@ -1260,6 +1269,7 @@ static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) wxWindow *parent = win->GetParent(); wxCHECK_RET( parent, wxT("MDI client without parent frame? weird...") ); + ::SendMessage(GetWinHwnd(win), WM_MDIREFRESHMENU, 0, 0L); ::DrawMenuBar(GetWinHwnd(parent)); } @@ -1306,7 +1316,6 @@ static void RemoveWindowMenu(wxWindow *win, WXHMENU menu) // Try to insert Window menu in front of Help, otherwise append it. HMENU hmenu = (HMENU)menu; int N = GetMenuItemCount(hmenu); - bool success = FALSE; for ( int i = 0; i < N; i++ ) { wxChar buf[256]; @@ -1320,7 +1329,6 @@ static void RemoveWindowMenu(wxWindow *win, WXHMENU menu) if ( wxStripMenuCodes(wxString(buf)).IsSameAs(_("Window")) ) { - success = TRUE; ::RemoveMenu(hmenu, i, MF_BYPOSITION); break; }