InsertMenuW 函数 (winuser.h)
将新菜单项插入到菜单中,将其他项向下移动。
语法
BOOL InsertMenuW(
[in] HMENU hMenu,
[in] UINT uPosition,
[in] UINT uFlags,
[in] UINT_PTR uIDNewItem,
[in, optional] LPCWSTR lpNewItem
);
参数
[in] hMenu
类型:HMENU
要更改的菜单的句柄。
[in] uPosition
类型:UINT
要插入新菜单项的菜单项,由 uFlags 参数确定。
[in] uFlags
类型:UINT
控制 uPosition 参数的解释以及新菜单项的内容、外观和行为。 此参数必须包含以下必需值之一。
该参数还必须至少包含以下值之一。
价值 | 意义 |
---|---|
|
使用位图作为菜单项。 lpNewItem 参数包含位图的句柄。 |
|
将复选标记放在菜单项旁边。 如果应用程序提供复选标记位图(请参阅 SetMenuItemBitmaps),此标志将显示菜单项旁边的复选标记位图。 |
|
禁用菜单项,使其无法选中,但不会灰显。 |
|
启用菜单项,以便可以选择菜单项并从其灰显状态还原它。 |
|
禁用菜单项并将其灰显,以便无法选择它。 |
|
与菜单栏的 MF_MENUBREAK 标志相同。 对于下拉菜单、子菜单或快捷菜单,新列通过垂直线与旧列分隔。 |
|
将项放在新行(对于菜单栏)或新列中(对于下拉菜单、子菜单或快捷菜单),而不分隔列。 |
|
指定该项是所有者绘制的项。 首次显示菜单之前,拥有菜单的窗口会收到 WM_MEASUREITEM 消息,以检索菜单项的宽度和高度。 然后,每当必须更新菜单项的外观时,WM_DRAWITEM 消息就会发送到所有者窗口的窗口过程。 |
|
指定菜单项打开下拉菜单或子菜单。 uIDNewItem 参数指定下拉菜单或子菜单的句柄。 此标志用于将菜单名称添加到菜单栏或菜单项,该菜单项将子菜单打开到下拉菜单、子菜单或快捷菜单。 |
|
绘制水平分隔线。 此标志仅在下拉菜单、子菜单或快捷菜单中使用。 该行不能灰显、禁用或突出显示。 将忽略 lpNewItem 和 uIDNewItem 参数。 |
|
指定菜单项是文本字符串;lpNewItem 参数是指向字符串的指针。 |
|
不会在菜单项旁边放置复选标记(默认值)。 如果应用程序提供复选标记位图(请参阅 setMenuItemBitmaps 函数 |
[in] uIDNewItem
类型:UINT_PTR
新菜单项的标识符;或者,如果 uFlags 参数设置了 MF_POPUP 标志,则为下拉菜单或子菜单的句柄。
[in, optional] lpNewItem
类型:LPCTSTR
新菜单项的内容。 lpNewItem 的解释取决于 uFlags 参数是否包括 MF_BITMAP、MF_OWNERDRAW或 MF_STRING 标志,如下所示。
价值 | 意义 |
---|---|
|
包含位图句柄。 |
|
包含一个应用程序提供的值,可用于维护与菜单项相关的其他数据。 该值位于创建菜单项或更新菜单项时发送 WM_DRAWITEM 消息的 lParamWM_MEASUREITEM 参数所指向的结构 itemData 成员中。 |
|
包含指向以 null 结尾的字符串(默认值)的指针。 |
返回值
类型:BOOL
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError。
言论
每当菜单发生更改时,应用程序都必须调用 DrawMenuBar 函数,无论菜单是否位于显示的窗口中。
以下标志组不能一起使用:
- MF_BYCOMMAND 和 MF_BYPOSITION
- MF_DISABLED、MF_ENABLED和 MF_GRAYED
- MF_BITMAP、MF_STRING、MF_OWNERDRAW和 MF_SEPARATOR
- MF_MENUBARBREAK 和 MF_MENUBREAK
- MF_CHECKED 和 MF_UNCHECKED
注意
winuser.h 标头将 InsertMenu 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winuser.h (包括 Windows.h) |
库 | User32.lib |
DLL | User32.dll |
API 集 | ext-ms-win-ntuser-menu-l1-1-0(在 Windows 8 中引入) |
另请参阅
概念
其他资源
参考