Dynamic menu using mfc

后端 未结 4 1221
北恋
北恋 2020-12-03 05:40

I would like to add a menu item to my main menu and then populate it with items at run time. How would I do this? And besides adding items how would I have a message map en

4条回答
  •  悲&欢浪女
    2020-12-03 06:20

    You can create a CMenu object dynamically like this:

    CMenu *menu = new CMenu;
    menu->CreatePopupMenu();
    // Add items to the menu
    menu->AppendMenu(MF_STRING, menuItemID, "Text");
    ...
    

    Then add this sub-menu to your main menu:

    wnd->GetMenu()->AppendMenu(MF_POPUP, (UINT_PTR)menu->m_hMenu, "Menu Name");
    

    As for the message map, assuming all your menu item IDs are within a certain range, you can use ON_COMMAND_RANGE to map the entire range to a single function. This function will receive the ID as a parameter, and within the function, you can perform different operations based on the ID.

提交回复
热议问题