MENUITEMINFO结构包含有关菜单项的信息。
typedef结构tagMENUITEMINFO {el-Latn
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
DWORD dwItemData;
LPTSTR dwTypeData;
UINT cch;
} MENUITEMINFO, FAR *LPMENUITEMINFO;
会员
CBSIZE
结构大小,以字节为单位。
fMask
会员检索或设置。该成员可以是以下值中的一个或多个:
值 | 含义 |
MIIM_CHECKMARKS | 检索或设置hbmpChecked和hbmpUnchecked成员。 |
MIIM_DATA | 检索或设置dwItemData成员。 |
MIIM_ID | 检索或设置wID成员。 |
MIIM_STATE | 检索或设置fState成员。 |
MIIM_SUBMENU | 检索或设置hSubMenu成员。 |
MIIM_TYPE | 检索或设置FTYPE和dwTypeData成员。 |
FTYPE
菜单项类型。该成员可以是以下值中的一个或多个:
值 | 含义 |
MFT_BITMAP | 使用位图显示菜单项。dwTypeData成员的低位字是位图句柄,CCHen成员被忽略。 |
MFT_MENUBARBREAK | 将菜单项放在新行(菜单栏)或新列(对于下拉菜单,子菜单或快捷菜单)中。对于下拉菜单,子菜单或快捷菜单,垂直线将新列与旧列分开。 |
MFT_MENUBREAK | 将菜单项放在新行(菜单栏)或新列(对于下拉菜单,子菜单或快捷菜单)中。对于下拉菜单,子菜单或快捷菜单,列不会以垂直线分隔。 |
MFT_OWNERDRAW | 分配将菜单项绘制到拥有菜单的窗口的责任。在第一次显示菜单之前,该窗口将收到一条WM_MEASUREITEM消息,每当必须更新菜单项的出现时,将显示WM_DRAWITEM消息。如果指定了此值,则dwTypeData成员包含应用程序定义的32位值。 |
MFT_RADIOCHECK | 如果hbmpChecked成员为NULL,则使用单选按钮标记而不是复选标记显示已检查的菜单项。 |
MFT_RIGHTJUSTIFY | 右键菜单项和任何后续项。该值仅在菜单项位于菜单栏中时有效。 |
MFT_SEPARATOR | 指定菜单项是分隔符。菜单项分隔符显示为水平分割线。dwTypeData和CCHen成员将被忽略。此值仅在下拉菜单,子菜单或快捷菜单中有效。 |
MFT_STRING | 使用文本字符串显示菜单项。dwTypeData成员是指向以null结尾的字符串的指针,CCHen成员是字符串的长度。 |
MFT_BITMAP,MFT_SEPARATOR和MFT_STRING值不能相互组合。en
fState
菜单项状态。该成员可以是以下值中的一个或多个:
值 | 含义 |
MFS_CHECKED | 检查菜单项。有关已选菜单项的详细信息,请参阅hbmpChecked成员。 |
MFS_DEFAULT | 指定菜单项是默认值。菜单只能包含一个默认菜单项,以粗体显示。 |
MFS_DISABLED | 禁用菜单项,使其无法选择,但不会灰色。 |
MFS_ENABLED | 启用菜单项,以便可以选择。这是默认状态。 |
MFS_GRAYED | 禁用菜单项并将其灰化,使其不能被选择。 |
MFS_HILITE | 突出菜单项。 |
MFS_UNCHECKED | 取消选中菜单项。有关未选中的菜单项的更多信息,请参阅hbmpUnchecked成员。 |
MFS_UNHILITE | 从菜单项中移除高光。这是默认状态。 |
wID
应用程序定义的16位值,用于标识菜单项。
hSubMenu
处理到与菜单项相关的下拉菜单或子菜单。如果菜单项不是打开下拉菜单或子菜单的项,则此成员为NULL。
hbmpChecked
如果选中该项,则处理位图以显示该项目旁边。如果此成员为NULL,则使用默认位图。如果指定了MFT_RADIOCHECK类型值,则默认位图是一个项目符号。否则,它是一个复选标记。
hbmpUnchecked
如果未选中,则处理位图以显示该项目旁边。如果此成员为NULL,则不使用位图。
dwItemData
应用程序定义的值与菜单项相关联。
dwTypeData
菜单项的内容。该成员的含义取决于菜单项类型:MFT_BITMAP,MFT_SEPARATOR或MFT_STRING值。
CCHen
当收到关于MFT_STRING类型的菜单项的信息时菜单项文本的长度。其他菜单项类型的值为零。当设置菜单项的内容时,会忽略该成员。
备注
MENUITEMINFO结构与GetMenuItemInfo,InsertMenuItem和SetMenuItemInfo功能一起使用。
也可以看看
GetMenuItemInfo, InsertMenuItem, SetMenuItemInfo, WM_DRAWITEM, WM_MEASUREITEM