向菜单项添加子菜单项

Adding submenu items to menuitems

本文关键字:菜单项 添加      更新时间:2023-10-16

我在c++中为窗口菜单添加子菜单项时遇到了麻烦。我正在为我的游戏添加一个数字(准确地说是20)来保存插槽。

下面是我保存槽的代码:

    HMENU win32MENU = CreateMenu();//Menu bar
    HMENU win32SETTINGS = CreateMenu();//Settings option
        HMENU win32SAVESLOTS = CreateMenu();//Save Slots
    AppendMenu(win32MENU,MF_POPUP,(UINT_PTR)win32SETTINGS,"Settings");
    //Settings
    AppendMenu(win32SETTINGS,MF_STRING,(UINT_PTR)win32SAVESLOTS,"Save                       Ctrl+S");
        //Save Slots
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Default ~");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 1");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 2");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 3");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 4");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 5");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 6");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 7");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 8");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 9");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 10");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 11");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 12");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 13");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 14");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 15");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 16");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 17");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 18");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 19");
        AppendMenu(win32SAVESLOTS,MF_STRING,NULL,"Save Slot 20");

变化:

AppendMenu(win32SETTINGS,MF_STRING,(UINT_PTR)win32SAVESLOTS,"Save Ctrl+S");

AppendMenu(win32SETTINGS,MF_STRING | MF_POPUP,(UINT_PTR)win32SAVESLOTS,"Save Ctrl+S");

同样,修改

HMENU win32SAVESLOTS = CreateMenu();//Save Slots

HMENU win32SAVESLOTS = CreatePopupMenu();//Save Slots