setMenuItemBitmaps 函数 (winuser.h)

将指定的位图与菜单项相关联。 无论菜单项是选中还是清除,系统都显示菜单项旁边的相应位图。

语法

BOOL SetMenuItemBitmaps(
  [in]           HMENU   hMenu,
  [in]           UINT    uPosition,
  [in]           UINT    uFlags,
  [in, optional] HBITMAP hBitmapUnchecked,
  [in, optional] HBITMAP hBitmapChecked
);

参数

[in] hMenu

类型: HMENU

包含要接收新检查标记位图的项的菜单的句柄。

[in] uPosition

类型: UINT

要更改的菜单项,由 uFlags 参数确定。

[in] uFlags

类型: UINT

指定如何解释 uPosition 参数。 uFlags 参数必须是以下值之一。

Value 含义
MF_BYCOMMAND
0x00000000L
指示 uPosition 提供菜单项的标识符。 如果未指定 MF_BYCOMMANDMF_BYPOSITION则MF_BYCOMMAND 为默认标志。
MF_BYPOSITION
0x00000400L
指示 uPosition 提供菜单项的从零开始的相对位置。

[in, optional] hBitmapUnchecked

类型: HBITMAP

未选择菜单项时显示的位图的句柄。

[in, optional] hBitmapChecked

类型: HBITMAP

选择菜单项时显示的位图的句柄。

返回值

类型: BOOL

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

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

如果 hBitmapUncheckedhBitmapChecked 参数为 NULL,则系统不会在相应检查状态的菜单项旁边显示任何内容。 如果两个参数均为 NULL,则系统将在选择项时显示默认检查标记位图,并在未选择该项时删除位图。

销毁菜单时,不会销毁这些位图;销毁它们由应用程序决定。

所选和清除的位图应为单色。 系统使用布尔和运算符将位图与菜单组合在一起,使白色部分变为透明,黑色部分成为菜单项颜色。 如果使用颜色位图,则结果可能不可取。

使用具有SM_CXMENUCHECKSM_CYMENUCHECK值的 GetSystemMetrics 函数检索位图维度。

示例

有关示例,请参阅 在菜单中模拟复选框

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll

另请参阅

菜单