BOOL GetMenuItemInfo(
UINT uItem,
LPMENUITEMINFO lpMenuItemInfo,
BOOL fByPosition = FALSE
) const;
其中参数含义如下:
- uItem:指定菜单项的标识符或位置。
- lpMenuItemInfo:指向 MENUITEMINFO 结构的指针,用于接收菜单项的信息。
- fByPosition:如果为 TRUE,则 uItem 参数被解释为菜单项的位置;如果为 FALSE,则 uItem 参数被解释为菜单项的标识符。
MENUITEMINFO 结构定义如下:
typedef struct tagMENUITEMINFO {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
DWORD_PTR dwItemData;
LPTSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
} MENUITEMINFO, *LPMENUITEMINFO;
你可以通过调用 GetMenuItemInfo 方法来获取指定菜单项的信息,然后检查 MENUITEMINFO 结构中的相应字段,以获取有关菜单项的详细信息。例如:
CMenu menu;
// 假设有一个有效的菜单对象
MENUITEMINFO menuItemInfo;
memset(&menuItemInfo, 0, sizeof(MENUITEMINFO));
menuItemInfo.cbSize = sizeof(MENUITEMINFO);
menuItemInfo.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE;
if (menu.GetMenuItemInfo(uItem, &menuItemInfo, TRUE)) {
// 在这里可以使用 menuItemInfo 结构中的信息
// 例如,菜单项的标识符是 menuItemInfo.wID
}
这是一个简单的例子,你可以根据你的具体需求设置 fMask 和检查 MENUITEMINFO 结构中的其他字段。
转载请注明出处:http://www.pingtaimeng.com/article/detail/18982/MFC/CMenu