From: Vadim Zeitlin Date: Sat, 7 Jan 2006 01:14:45 +0000 (+0000) Subject: refresh the MDI frame window menu whenever a child frame is shown/hidden (and not... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e45a6885492304586b481ee1dacdc1544533e731 refresh the MDI frame window menu whenever a child frame is shown/hidden (and not only when its menu bar is changed as this means that the menu is never refreshed if the child frame has no menu) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 51ab9de541..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; } @@ -1373,8 +1378,16 @@ void wxMDIChildFrame::OnIdle(wxIdleEvent& event) static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) { - ::SendMessage(GetWinHwnd(win), WM_MDISETMENU, - (WPARAM)hmenuFrame, (LPARAM)hmenuWindow); + 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();