CreateBitmapIndirect 函数 (wingdi.h)

CreateBitmapIndirect 函数创建具有指定宽度、高度和颜色格式的位图, (颜色平面和每像素位) 。

语法

HBITMAP CreateBitmapIndirect(
  [in] const BITMAP *pbm
);

参数

[in] pbm

指向包含位图相关信息的 BITMAP 结构的指针。 如果应用程序将 bmWidthbmHeight 成员设置为零, 则 CreateBitmapIndirect 会将句柄返回到 1 x 1 像素的单色位图。

返回值

如果函数成功,则返回值是位图的句柄。

如果函数失败,则返回值为 NULL。

此函数可以返回以下值。

返回代码 说明
ERROR_INVALID_PARAMETER
一个或多个输入参数无效。
ERROR_NOT_ENOUGH_MEMORY
位图太大,无法分配内存。

注解

CreateBitmapIndirect 函数创建依赖于设备的位图。

创建位图后,可以通过调用 SelectObject 函数将其选择到设备上下文中。 但是,如果位图和 DC 格式相同,则位图只能选择到设备上下文中。

虽然 CreateBitmapIndirect 函数可用于创建颜色位图,但出于性能原因,应用程序应使用 CreateBitmapIndirect 创建单色位图, 使用 CreateCompatibleBitmap 创建颜色位图。 每当 将 CreateBitmapIndirect 中的颜色位图选入设备上下文时,系统都必须确保该位图与被选中的设备上下文的格式匹配。 由于 CreateCompatibleBitmap 采用设备上下文,因此它返回与指定设备上下文格式相同的位图。 因此,使用 CreateCompatibleBitmap 中的颜色位图,对 SelectObject 的后续调用比从 CreateBitmapIndirect 返回的颜色位图更快。

如果位图为单色,则零表示前景色,零表示目标设备上下文的背景色。

如果不再需要位图,请调用 DeleteObject 函数将其删除。

要求

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

另请参阅

BITMAP

BitBlt

位图函数

位图概述

CreateBitmap

CreateCompatibleBitmap

CreateDIBitmap

DeleteObject

SelectObject