### 函数功能

该函数由与设备无关的位图（DIB）创建与设备有关的位图（DDB），并且有选择地为位图置位。

### 函数原型

HBITMAP CreateDIBitmap(HDC hdc,CONST BITMAPINFONEADER *lpbmih,DWORD fdwlnit,CONST VOID *lpblnit,CONST BITMAPINFO *lpbmi,UINT fuUsage)；

### 参数

hdc：设备环境句柄。
lpbmih：指向位图信息头结构的指针，它可以是下列操作系统位图信息头之一：
Windows NT 3.51和早期：BITMAPINFOHEADER；Windows NT 4.0和Windows 95：BITMAPV4HEADER；
Windows NT 5.0和Windows 98：BITMAPV5HEADER。
如果fdwlnit是CBM_INIT，那么函数使用位图信息头结构来获取位图所需的宽度、高度以及其他信息。
注意高度若是正数，那么表示是自底向上DIB，而负数表示为自顶向下DIB，这种情况与CreateDIBitmap函数兼容。
Fdwlnit：位标识集。它指定系统如何对位图的位进行初始化。
下面是定义的位标志常量：
CBM_INIT：如果设置了该标志，那么系统将使用lpblnit和lpbmi两个参数指向的数据来对位图中的位进行初始化。如果没有该标志，那么表示上述两个参数指向的数据无效。如果fdwlnit为0，那么系统不会对位图的位进行初始化。
lpblnit：该指针指向包含初始的位图数据的字节类型数组。数据格式与参数lpbmi指向的BITMAPINFO结构中的成员biBitCount有关。
lpbmi：指向BITMAPINFO结构的旨针。该结构描述了参数lpbmi指向的数组的维数和颜色格式。
fuUsage：表示BITMAPINFO结构的成员bmiColors是否初始化过，并且如果是，那么bmiColors是否包含明确的红、绿、蓝（RGB）值或调色板索引。参数fuUsage必须取下列值中的一个，这些值的含义为：
DIB_PAL_COLORS：表示提供一个颜色表，并且该表由该位图要选入的设备环境的逻辑调色板的16位索引值数组组成。
DIB_RGB_COLORS：表示提供一个颜色表，并且表中包含了原义的RGB值。

### 返回值

如果函数执行成功，返回值则是创建的位图的句柄；如果函数执行失败，那么返回值为NULL，若想获取更多错误信息，请调用GetLastError函数。
备注：用于fdwlnit参数的CBM＿CREATDIB标志不再被支持。当不再需要该位图时，可调用DeleteObject函数删除它。
ICM：参数fuUsage用来指定参数lpbmi指向的BITMAPINFO结构中的成员bmiColors是否包含颜色信息。如果bmiColors不包含颜色信息，那么不能进行位图的颜色管理。BITMAPINFO中的bmiColors成员必须包含BITMAPV4HEADER或BITMAPV5HEADER，以便能够进行颜色管理。在创建完位图之后，产生的位图的内容颜色不匹配。

### 速查

Windows NT：3.1及以上版本；Windows：95及以上版本；Windows CE：不支持；头文件：wingdi.h；库文件：gdi32.lib。