PopupMenuItem

【勇芳软件工作室】汉化HomePreviousNext

PopupMenuItem结构包含有关打开菜单或子菜单的菜单资源中的菜单项的信息。

#include“WINUSER.H”

DWORD type;

DWORD state;

DWORD id;

WORD resInfo;

szOrOrd menuText;

};

会员

类型

指定一组可用于描述菜单项的类型标志。该成员可能包含的一些值包括:

含义
MF_END菜单项是菜单上的最后一个;该标志由系统内部使用。
MF_POPUP菜单项打开菜单或子菜单;该标志由系统内部使用。

如果指定MF_POPUP,则表示菜单项是打开菜单或子菜单的菜单项。

除了值MF_END和MF_POPUP之外,该成员还可以是与MENUITEMINFO结构的dwType成员列出的类型值的组合。类型值是以MFT_开头的值。要使用这些预定义的MFT_ *类型值,请在.RC文件中包含以下语句:

#include“WINUSER.H”

指定一组可用于描述菜单项的状态标志。该成员可以是与MENUITEMINFO结构的dwState成员列出的状态值的组合。状态值是以MFS_开头的值。要使用这些预定义的MFS_ *状态值,请在.RC文件中包含以下语句:

#include“WINUSER.H”

id

标识在WM_COMMAND消息中传递的菜单项的数字表达式。

resInfo

一组指定菜单项类型的位标志。该成员可以是以下值之一。

含义
MFR_END菜单项是此子菜单或菜单资源中的最后一个;该标志由系统内部使用。
MFR_POPUP菜单项打开菜单或子菜单;该标志由系统内部使用。

menuText

指定一个空值终止的Unicode字符串,其中包含此菜单项的文本。该字符串的大小没有固定的限制。

备注

每个菜单项有一个PopupMenuItem结构,可以打开菜单或子菜单。通过将类型成员设置为MF_POPUP,并将resInfo成员中的MFR_POPUP位设置为0x0001来标识此类菜单项。在这种情况下,写入菜单或子菜单的RT_MENU资源的最终数据是MENUHELPID结构。MENUHELPID包含在WM_HELP处理期间标识菜单的数字表达式。

另外,在resInfo成员中设置了MFR_POPUP位的每个PopupMenuItem结构后面都会加上一个MENUHELPID结构,另外还有一个PopupMenuItem结构,每一个子菜单项都有一个结构。子菜单中的最后一个PopupMenuItem结构将在resInfo成员中设置MFR_END位。要查找资源的结尾,请为每个MFR_POPUP加上一个与外部菜单项匹配的另外一个MFR_END寻找匹配的MFR_END。

通过将类型成员设置为MF_END来指示最后一个菜单项。由于您可以嵌套子菜单,因此可以有多个级别的MF_END。在这些情况下,菜单项是连续的。

也可以看看

MenuHeader,MENUHELPID,MENUITEMINFO,NormalMenuItem