createBitmap 函数 (wingdi.h)

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

语法

HBITMAP CreateBitmap(
  [in] int        nWidth,
  [in] int        nHeight,
  [in] UINT       nPlanes,
  [in] UINT       nBitCount,
  [in] const VOID *lpBits
);

参数

[in] nWidth

位图宽度(以像素为单位)。

[in] nHeight

位图高度(以像素为单位)。

[in] nPlanes

设备使用的颜色平面数。

[in] nBitCount

标识单个像素的颜色所需的位数。

[in] lpBits

指向颜色数据数组的指针,用于在像素矩形中设置颜色。 矩形中的每个扫描行都必须是单词对齐, (非单词对齐的扫描行必须填充零) 。 可以使用 公式计算所需的缓冲区大小 cj

cj = (((nWidth * nPlanes * nBitCount + 15) >> 4) << 1) * nHeight;

如果此参数为 NULL,则新位图的内容未定义。

返回值

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

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

此函数可以返回以下值。

返回代码 说明
ERROR_INVALID_BITMAP
位图的计算大小小于零。

注解

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

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

CreateBitmap 函数可用于创建颜色位图。 但是,出于性能原因,应用程序应使用 CreateBitmap 创建单色位图,使用 CreateCompatibleBitmap 创建颜色位图。 每当从 CreateBitmap 返回的颜色位图选择到设备上下文中时,系统都会检查该位图是否与所选设备上下文的格式匹配。 由于 CreateCompatibleBitmap 采用设备上下文,因此它返回与指定设备上下文格式相同的位图。 因此,使用 CreateCompatibleBitmap 中的颜色位图,对 SelectObject 的后续调用比从 CreateBitmap 返回的颜色位图更快。

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

如果应用程序将 nWidthnHeight 参数设置为零, CreateBitmap 会将句柄返回到 1 x 1 像素的单色位图。

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

要求

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

另请参阅

位图函数

位图概述

CreateBitmapIndirect

CreateCompatibleBitmap

CreateDIBitmap

DeleteObject

GetBitmapBits

SelectObject

SetBitmapBits