CreateMappedBitmap 函数 (commctrl.h)

创建在工具栏中使用的位图。

语法

HBITMAP CreateMappedBitmap(
       HINSTANCE  hInstance,
       INT_PTR    idBitmap,
       UINT       wFlags,
  [in] LPCOLORMAP lpColorMap,
       int        iNumMaps
);

参数

hInstance

类型: HINSTANCE

包含包含位图资源的可执行文件的模块实例的句柄。

idBitmap

类型: INT_PTR

位图资源的资源标识符。

wFlags

类型: UINT

位图标志。 此参数可以为零或以下值:

含义
CMB_MASKED
使用位图作为掩码。

[in] lpColorMap

类型: LPCOLORMAP

指向 COLORMAP 结构的指针,该结构包含映射位图所需的颜色信息。 如果此参数为 NULL,则该函数使用默认颜色贴图。

iNumMaps

类型: int

lpColorMap 指向的颜色映射数。

返回值

类型: HBITMAP

如果成功,则返回位图的句柄,否则返回 NULL 。 若要检索扩展的错误信息,请调用 GetLastError

注解

函数使用位图资源指定的位图数据和颜色以及颜色映射信息创建新的位图。

只有具有彩色映射的图像才完全支持此功能;即具有 256 种或更少颜色的图像。

示例

以下示例代码从资源创建位图,并通过映射到按钮面的系统颜色使黑色显示为透明。

DWORD backgroundColor = GetSysColor(COLOR_BTNFACE);
COLORMAP colorMap;
colorMap.from = RGB(0, 0, 0);
colorMap.to = backgroundColor;
HBITMAP hbm = CreateMappedBitmap(g_hInst, IDB_BITMAP1, 0, &colorMap, 1);

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 commctrl.h
Library Comctl32.lib
DLL Comctl32.dll
API 集 ext-ms-win-shell-comctl32-init-l1-1-1 (在 Windows 10 版本 10.0.14393 中引入)