如何为弹出菜单创建子菜单?

How to create a submenu for a popup menu?

当我想创建一个弹出菜单时,我会使用 CreatePopupMenu() 函数。

但是如果其中一个弹出菜单项需要有一个子菜单,我应该也使用 CreatePopupMenu() 来创建子菜单,还是应该使用 CreateMenu()

CreateMenu 用于 Window 的水平菜单栏。您可以使用 CreatePopupMenu 制作弹出菜单,以及弹出子菜单:

HMENU submenu = CreatePopupMenu();
AppendMenu(submenu, MF_STRING, 1001, L"submenu 1001");

HMENU mainmenu = CreatePopupMenu();
AppendMenu(mainmenu, MF_STRING, 100, L"main 100");
AppendMenu(mainmenu, MF_SEPARATOR, 0, NULL);
AppendMenu(mainmenu, MF_STRING, 101, L"main 101");

AppendMenu(mainmenu, MF_POPUP, (UINT)submenu, L"&submenu");

POINT p;
GetCursorPos(&p);
TrackPopupMenu(mainmenu, TPM_LEFTBUTTON, p.x, p.y, 0, hdlg, 0);