Question

I was having trouble adding a submenu item to a menuitem to my window menu in C++. I was adding a number (20 to be exact) of saving slots for my game.

Here is the code I have for the save slots:

    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");

Thanks in advance.

Was it helpful?

Solution

Change:

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

to

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

Also, change

HMENU win32SAVESLOTS = CreateMenu();//Save Slots

to

HMENU win32SAVESLOTS = CreatePopupMenu();//Save Slots

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top