CMenu::InsertMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于在指定位置插入一个菜单项或弹出式菜单。

以下是该方法的基本信息:
BOOL InsertMenu(
   UINT nPosition,
   UINT nFlags,
   UINT_PTR nIDNewItem = 0,
   LPCTSTR lpszNewItem = NULL
);

参数说明:

  •  nPosition: 要插入菜单项的位置索引。索引从 0 开始,表示菜单中的第一个菜单项。

  •  nFlags: 指定插入菜单项的标志,如 MF_STRING、MF_POPUP 等。

  •  nIDNewItem: 如果插入的是一个命令菜单项,这是该菜单项的标识符。

  •  lpszNewItem: 如果插入的是字符串菜单项,这是菜单项的文本。


返回值:

  •  如果成功,则返回非零值;如果失败,则返回零。


示例用法:
CMenu menu;
menu.CreateMenu(); // 创建一个新菜单

// 插入一个字符串菜单项
menu.InsertMenu(0, MF_STRING, IDM_NEW, _T("New"));

// 插入一个弹出式菜单
CMenu submenu;
submenu.CreatePopupMenu();
submenu.InsertMenu(0, MF_STRING, IDM_COPY, _T("Copy"));
submenu.InsertMenu(1, MF_STRING, IDM_PASTE, _T("Paste"));

menu.InsertMenu(1, MF_POPUP, (UINT_PTR)submenu.GetSafeHmenu(), _T("Edit"));

// 在这里可以使用 menu 进行其他操作
// ...

在上述示例中,首先通过 CreateMenu 创建了一个新菜单对象 menu。然后使用 InsertMenu 方法在菜单的不同位置插入了一个字符串菜单项和一个包含两个命令菜单项的弹出式菜单。这是一个简单的演示,实际使用中可以根据需要插入不同类型的菜单项。


转载请注明出处:http://www.pingtaimeng.com/article/detail/18986/MFC/CMenu