X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88c49a0f21dab4f2047b2dc8f77abdcce46e012b..dd107c50be43e8d4dbdba20df162faf119a3781c:/src/msw/mdi.cpp?ds=sidebyside diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 1967ec43c4..b0ede88e4e 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -695,7 +695,7 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, else mcs.cy = CW_USEDEFAULT; - DWORD msflags = WS_OVERLAPPED | WS_CLIPCHILDREN; + DWORD msflags = WS_OVERLAPPED | WS_CLIPCHILDREN | WS_THICKFRAME; if (style & wxMINIMIZE_BOX) msflags |= WS_MINIMIZEBOX; if (style & wxMAXIMIZE_BOX) @@ -726,14 +726,6 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, 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; } @@ -1011,6 +1003,8 @@ bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate), wxActivateEvent event(wxEVT_ACTIVATE, activated, m_windowId); event.SetEventObject( this ); + ResetWindowStyle((void *)NULL); + return GetEventHandler()->ProcessEvent(event); } @@ -1152,7 +1146,9 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) ccs.hWindowMenu = (HMENU) parent->GetWindowMenu()->GetHMenu(); ccs.idFirstChild = wxFIRST_MDI_CHILD; - DWORD msStyle = /* MDIS_ALLCHILDSTYLES | */ WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN; + DWORD msStyle = MDIS_ALLCHILDSTYLES | WS_VISIBLE | WS_CHILD | + WS_CLIPCHILDREN | WS_CLIPSIBLINGS; + if ( style & wxHSCROLL ) msStyle |= WS_HSCROLL; if ( style & wxVSCROLL ) @@ -1272,7 +1268,10 @@ static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) wxWindow *parent = win->GetParent(); wxCHECK_RET( parent, wxT("MDI client without parent frame? weird...") ); +#ifndef __WIN16__ ::SendMessage(GetWinHwnd(win), WM_MDIREFRESHMENU, 0, 0L); +#endif + ::DrawMenuBar(GetWinHwnd(parent)); }