// The wxWindow destructor will take care of deleting the submenus.
wxMenu::~wxMenu()
{
- // 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() )
+ if ( !::DestroyMenu(GetHmenu()) )
{
- if ( !::DestroyMenu(GetHmenu()) )
- {
- wxLogLastError(wxT("DestroyMenu"));
- }
+ wxLogLastError(wxT("DestroyMenu"));
}
#if wxUSE_ACCEL
// event processing
// ---------------------------------------------------------------------------
-bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id)
+bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id_)
{
+ const int id = (signed short)id_;
+
// ignore commands from the menu title
- if ( id != (WXWORD)idMenuTitle )
+ if ( id != idMenuTitle )
{
// update the check item when it's clicked
wxMenuItem * const item = FindItem(id);
toolMenuBar->SetMenuBar(NULL);
}
#else
- // 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 ( m_hMenu )
{
#if defined(WINCE_WITH_COMMANDBAR)
::DestroyWindow((HWND) m_commandBar);