Ok - got it working - a bit different than you told me to, and with a lot of consequences. The current state: 1. we have a MFC application 2. our MFC application has a resource based menu, with one ON_COMMAND handler per menu item 3. I wrote a tcl API to access the MFC application menu, which allows to create new sub menus and menu items. 4. before I insert a popup menu, I switch the MFC application menu MENUINFO to MNS_NOTIFYBYPOS, so that WM_MENUCOMMAND messages are used, instead of WM_COMMAND messages 5. after inserting a popup menu, I switch the new sub menu to use WM_MENUCOMMAND messages 6. I registered a ON_MESSAGE handler for WM_MENUCOMMAND messages The consequences: 1. None of the resource based menu items, with ON_COMMAND handlers, will work anymore, because there are no WM_COMMAND messages anymore 2. every selected menu item causes the wanted WM_MENUCOMMAND message 3. every menu in the "path" of (sub)menus seem to have this MENUINFO style flag MNS_NOTIFYBYPOS, so that this model is really working. If I don't switch all containing menus of a sub menus to send WM_MENUCOMMAND messages, than the whole model won't work. The suggestion above to use TrackPopupMenu must work, if the popup menu is used all alone, but if it is used inside a "path" of cascaded menus, than this would be more problematic. 4. the whole menu system of ON_COMMAND handlers must be rewritten, or I must find a way to get rid of the dummy or template menu item and create resources on the fly, but ... I don't know how! A change of question: How do I create on-the-fly resources or menu items with new, non-existing IDs? If I'd know, how to create on-the-fly resources, than I could stay with the normal WM_COMMAND system. Thanks to you Prasad! Best regards, and a happy weekend! Martin Lemburg