MENUINFO 结构 (winuser.h)

包含有关菜单的信息。

语法

typedef struct tagMENUINFO {
  DWORD     cbSize;
  DWORD     fMask;
  DWORD     dwStyle;
  UINT      cyMax;
  HBRUSH    hbrBack;
  DWORD     dwContextHelpID;
  ULONG_PTR dwMenuData;
} MENUINFO, *LPMENUINFO;

成员

cbSize

类型:DWORD

结构大小(以字节为单位)。 调用方必须将此成员设置为 sizeof(MENUINFO)

fMask

类型:DWORD

指示 (检索或设置的成员( MIM_APPLYTOSUBMENUS) 除外)。 此成员可以是以下一个或多个值。

含义
MIM_APPLYTOSUBMENUS
0x80000000
设置适用于菜单及其所有子菜单。 SetMenuInfo 使用此标志, GetMenuInfo 忽略此标志
MIM_BACKGROUND
0x00000002
检索或设置 hbrBack 成员。
MIM_HELPID
0x00000004
检索或设置 dwContextHelpID 成员。
MIM_MAXHEIGHT
0x00000001
检索或设置 cyMax 成员。
MIM_MENUDATA
0x00000008
检索或设置 dwMenuData 成员。
MIM_STYLE
0x00000010
检索或设置 dwStyle 成员。

dwStyle

类型:DWORD

菜单样式。 此成员可以是以下一个或多个值。

含义
MNS_AUTODISMISS
0x10000000
当鼠标在菜单外大约 10 秒时,菜单会自动结束。
MNS_CHECKORBMP
0x04000000
为检查标记和位图保留相同的空间。 如果绘制检查标记,则位图不是。 所有复选标记和位图都对齐。 用于菜单,其中一些项使用复选标记,一些项使用位图。
MNS_DRAGDROP
0x20000000
菜单项是 OLE 放置目标或拖动源。 菜单所有者接收 WM_MENUDRAGWM_MENUGETOBJECT 消息。
MNS_MODELESS
0x40000000
菜单是无模式的;也就是说,在菜单处于活动状态时没有菜单模式消息循环。
MNS_NOCHECK
0x80000000
项左侧没有为检查标记保留空间。 仍然可以选择该项,但项目旁边不会显示检查标记。
MNS_NOTIFYBYPOS
0x08000000
当用户进行选择时,菜单所有者会收到 WM_MENUCOMMAND 消息,而不是 WM_COMMAND 消息。 MNS_NOTIFYBYPOS 是菜单标题样式,应用于单个子菜单时不起作用。

cyMax

类型: UINT

菜单的最大高度(以像素为单位)。 当菜单项超过可用空间时,将自动使用滚动条。 默认 (0) 是屏幕高度。

hbrBack

类型: HBRUSH

要用于菜单背景的画笔的句柄。

dwContextHelpID

类型:DWORD

上下文帮助标识符。 此值与 GetMenuContextHelpIdSetMenuContextHelpId 函数中使用的值相同。

dwMenuData

类型: ULONG_PTR

应用程序定义的值。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

另请参阅

菜单概述