]> git.saurik.com Git - wxWidgets.git/commitdiff
refresh the MDI frame window menu whenever a child frame is shown/hidden (and not...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 7 Jan 2006 01:14:45 +0000 (01:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 7 Jan 2006 01:14:45 +0000 (01:14 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/mdi.cpp

index 51ab9de541f54197a11ba121136b3867adaebfe2..bcb1467df6c75607b286d9040a8edd5cbb956119 100644 (file)
@@ -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();