]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/menu.cpp
Removed a deprecated wxBitmap constructor, and some
[wxWidgets.git] / src / msw / menu.cpp
index 659634d90a13020b54d1434fa0ec6072b0d77d57..b3005be6cc512857ecdbd38e53bbcb5bbe3190dc 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by: Vadim Zeitlin
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ===========================================================================
@@ -557,6 +557,13 @@ wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
 
 wxMenuBar::~wxMenuBar()
 {
+    // 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())
+    {
+        ::DestroyMenu((HMENU)m_hMenu);
+        m_hMenu = (WXHMENU)NULL;
+    }
 }
 
 // ---------------------------------------------------------------------------
@@ -673,7 +680,8 @@ wxMenu *wxMenuBar::Replace(size_t pos, wxMenu *menu, const wxString& title)
 {
     wxMenu *menuOld = wxMenuBarBase::Replace(pos, menu, title);
     if ( !menuOld )
-        return FALSE;
+        return NULL;
+
     m_titles[pos] = title;
 
     if ( IsAttached() )
@@ -837,8 +845,6 @@ void wxMenuBar::Attach(wxFrame *frame)
 
 void wxMenuBar::Detach()
 {
-    m_hMenu = (WXHMENU)NULL;
-
     wxMenuBarBase::Detach();
 }