以下是该方法的基本信息:
BOOL SetMenuItemInfo(
UINT uItem,
UINT uFlags,
LPCMENUITEMINFO lpMenuItemInfo
);
参数说明:
- uItem: 要设置信息的菜单项的标识符或位置索引,取决于 uFlags。
- uFlags: 指定 uItem 的标志,可以是 MF_BYCOMMAND 或 MF_BYPOSITION。
- lpMenuItemInfo: 指向 MENUITEMINFO 结构的指针,该结构包含了要设置的菜单项的信息。
MENUITEMINFO 结构定义如下:
typedef struct tagMENUITEMINFO {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
ULONG_PTR dwItemData;
LPTSTR dwTypeData;
UINT cch;
} MENUITEMINFO, *LPMENUITEMINFO;
返回值:
- 如果成功,则返回非零值;如果失败,则返回零。
示例用法:
CMenu menu;
menu.CreatePopupMenu(); // 创建一个弹出式菜单
MENUITEMINFO menuItemInfo;
memset(&menuItemInfo, 0, sizeof(MENUITEMINFO));
menuItemInfo.cbSize = sizeof(MENUITEMINFO);
menuItemInfo.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE;
menuItemInfo.fType = MFT_STRING;
menuItemInfo.fState = MFS_ENABLED;
menuItemInfo.wID = IDM_NEW;
menuItemInfo.dwTypeData = _T("New");
// 添加菜单项
BOOL result = menu.InsertMenuItem(0, &menuItemInfo);
if (result)
{
// 设置菜单项信息成功
// ...
}
else
{
// 设置菜单项信息失败
// ...
}
在上述示例中,首先通过 CreatePopupMenu 创建了一个弹出式菜单对象 menu,然后定义了一个 MENUITEMINFO 结构,设置了菜单项的信息,包括标识符、类型、状态、文本等。最后,通过 InsertMenuItem 方法添加了一个菜单项。如果设置成功,返回值为非零,你可以在设置成功后使用 menu 对象进行其他操作。如果设置失败,返回值为零,可以根据需要处理设置失败的情况。
转载请注明出处:http://www.zyzy.cn/article/detail/18997/MFC/CMenu