diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index ffdbf8b57d..f2bcc2000e 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -542,6 +542,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) // check if we have something more than a simple text item #if wxUSE_OWNER_DRAWN + bool makeItemOwnerDrawn = false; if ( pItem->IsOwnerDrawn() ) { #ifndef __DMC__ @@ -695,6 +696,9 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) // set menu as ownerdrawn m_ownerDrawn = true; + // also ensure that the new item itself is made owner drawn + makeItemOwnerDrawn = true; + ResetMaxAccelWidth(); } // only update our margin for equals alignment to other item @@ -726,6 +730,12 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) return false; } + + if ( makeItemOwnerDrawn ) + { + SetOwnerDrawnMenuItem(GetHmenu(), pos, + reinterpret_cast(pItem), TRUE); + } }