]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/menu.cpp
compile fix
[wxWidgets.git] / src / msw / menu.cpp
index 27ccbc0fb8d453cb0ee84a7f0f0e66a954908b47..a6956295e2dcab2610ae3cda67df7397d2ab1ef6 100644 (file)
@@ -261,9 +261,15 @@ void wxMenu::Init()
 // The wxWindow destructor will take care of deleting the submenus.
 wxMenu::~wxMenu()
 {
-    if ( !::DestroyMenu(GetHmenu()) )
+    // we should free Windows resources only if Windows doesn't do it for us
+    // which happens if we're attached to a menubar or a submenu of another
+    // menu
+    if ( !IsAttached() && !GetParent() )
     {
-        wxLogLastError(wxT("DestroyMenu"));
+        if ( !::DestroyMenu(GetHmenu()) )
+        {
+            wxLogLastError(wxT("DestroyMenu"));
+        }
     }
 
 #if wxUSE_ACCEL
@@ -874,8 +880,9 @@ wxMenuBar::~wxMenuBar()
             toolMenuBar->SetMenuBar(NULL);
     }
 #else
-
-    if ( m_hMenu )
+    // we should free Windows resources only if Windows doesn't do it for us
+    // which happens if we're attached to a frame
+    if (m_hMenu && !IsAttached())
     {
 #if defined(WINCE_WITH_COMMANDBAR)
         ::DestroyWindow((HWND) m_commandBar);