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

时间:2015-06-17 15:13:48

标签: c winapi

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

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

1 个答案:

答案 0 :(得分:2)

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