X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7dbe942aaaa9a8f32c9f901bdcf83d7941362b71..c54de5ae9d5ca61175599a2f30a49d14ae1108f3:/src/msw/mdi.cpp diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index ac7afcc3be..bcb1467df6 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -807,6 +807,11 @@ bool wxMDIChildFrame::Show(bool show) if ( show ) ::BringWindowToTop(GetHwnd()); + // we need to refresh the MDI frame window menu to include (or exclude if + // we've been hidden) this frame + wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); + MDISetMenu(parent->GetClientWindow(), NULL, NULL); + return true; } @@ -1092,7 +1097,7 @@ bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate), bool wxMDIChildFrame::HandleWindowPosChanging(void *pos) { WINDOWPOS *lpPos = (WINDOWPOS *)pos; -#if defined(__WIN95__) + if (!(lpPos->flags & SWP_NOSIZE)) { RECT rectClient; @@ -1114,7 +1119,6 @@ bool wxMDIChildFrame::HandleWindowPosChanging(void *pos) } #endif } -#endif // Win95 return false; } @@ -1132,14 +1136,14 @@ bool wxMDIChildFrame::HandleGetMinMaxInfo(void *mmInfo) minHeight = GetMinHeight(); // but allow GetSizeHints() to set the min size - if ( minWidth != -1 ) + if ( minWidth != wxDefaultCoord ) { info->ptMinTrackSize.x = minWidth; processed = true; } - if ( minHeight != -1 ) + if ( minHeight != wxDefaultCoord ) { info->ptMinTrackSize.y = minHeight; @@ -1200,10 +1204,10 @@ void wxMDIChildFrame::MSWDestroyWindow() // style when a child is maximised (a double border looks silly.) bool wxMDIChildFrame::ResetWindowStyle(void *vrect) { -#if defined(__WIN95__) RECT *rect = (RECT *)vrect; wxMDIParentFrame* pFrameWnd = (wxMDIParentFrame *)GetParent(); wxMDIChildFrame* pChild = pFrameWnd->GetActiveChild(); + if (!pChild || (pChild == this)) { HWND hwndClient = GetWinHwnd(pFrameWnd->GetClientWindow()); @@ -1235,7 +1239,6 @@ bool wxMDIChildFrame::ResetWindowStyle(void *vrect) return true; } } -#endif // Win95 return false; } @@ -1264,11 +1267,7 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) if ( style & wxVSCROLL ) msStyle |= WS_VSCROLL; -#if defined(__WIN95__) DWORD exStyle = WS_EX_CLIENTEDGE; -#else - DWORD exStyle = 0; -#endif wxWindowCreationHook hook(this); m_hWnd = (WXHWND)::CreateWindowEx @@ -1379,13 +1378,16 @@ void wxMDIChildFrame::OnIdle(wxIdleEvent& event) static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) { - ::SendMessage(GetWinHwnd(win), WM_MDISETMENU, -#ifdef __WIN32__ - (WPARAM)hmenuFrame, (LPARAM)hmenuWindow -#else - 0, MAKELPARAM(hmenuFrame, hmenuWindow) -#endif - ); + if ( hmenuFrame || hmenuWindow ) + { + if ( !::SendMessage(GetWinHwnd(win), + WM_MDISETMENU, + (WPARAM)hmenuFrame, + (LPARAM)hmenuWindow) ) + { + wxLogLastError(_T("SendMessage(WM_MDISETMENU)")); + } + } // update menu bar of the parent window wxWindow *parent = win->GetParent(); @@ -1486,4 +1488,3 @@ static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, } #endif // wxUSE_MDI && !defined(__WXUNIVERSAL__) -