SetMenuItemInfoW 函数 (winuser.h)

更改有关菜单项的信息。

语法

BOOL SetMenuItemInfoW(
  [in] HMENU            hmenu,
  [in] UINT             item,
       BOOL             fByPositon,
  [in] LPCMENUITEMINFOW lpmii
);

参数

[in] hmenu

类型:HMENU

包含菜单项的菜单的句柄。

[in] item

类型:UINT

要更改的菜单项的标识符或位置。 此参数的含义取决于 fByPosition的值。

fByPositon

[in] lpmii

类型:LPMENUITEMINFO

指向 MENUITEMINFO 结构的指针,该结构包含有关菜单项的信息,并指定要更改的菜单项属性。

返回值

类型:BOOL

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请使用 GetLastError 函数。

言论

每当菜单发生更改时,应用程序都必须调用 DrawMenuBar 函数,无论菜单是否位于显示的窗口中。

为了使键盘加速器能够处理位图或所有者绘制的菜单项,菜单的所有者必须处理 WM_MENUCHAR 消息。 有关详细信息,请参阅 Owner-Drawn 菜单和WM_MENUCHAR消息

例子

有关示例,请参阅 Owner-Drawn 菜单项的示例

注意

winuser.h 标头将 SetMenuItemInfo 定义为一个别名,该别名根据 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 中引入)

另请参阅

概念

DrawMenuBar

GetMenuItemInfo

MENUITEMINFO

菜单

参考