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。在这些情况下,菜单项是连续的。
也可以看看