CreateDIBitmap功能从与设备无关的位图(DIB)创建与设备相关的位图(DDB),并可选地设置位图位。
HBITMAP CreateDIBitmap(
HDC HDC, | //处理设备上下文 |
CONST BITMAPINFOHEADER* lpbmih, | //指向位图大小和格式数据的指针 |
DWORD fdwInit, | //初始化标志 |
CONST VOID lpbInit, | //指向初始化数据的指针 |
CONST BITMAPINFO*// address of structure with bitmap info., | //指向位图颜色格式数据的指针 |
UINT 德鲁·塞奇 | //颜色数据使用 |
); |
参数
HDC
标识设备上下文。
lpbmih
指向BITMAPINFOHEADER结构。
如果fdwInit是CBM_INIT,则该函数使用BITMAPINFOHEADER结构来获取所需的位图宽度和高度以及其他信息。请注意,高度的正值表示自底向上的DIB,而高度的负值表示自顶向下的DIB。此方案与CreateDIBitmap功能兼容。
fdwInit
一组位标志,用于指定操作系统如何初始化位图位。
定义以下位标志常量:
值 | 含义 |
CBM_INIT | 如果设置了该标志,操作系统将使用lpbInit和// address of structure with bitmap info.参数指向的数据来初始化位图的位。 如果该标志清除,则不使用这些参数指向的数据。 |
如果fdwInit为零,则操作系统不会初始化位图的位。
lpbInit
指向包含初始位图数据的字节数组。数据的格式取决于BITMAPINFO参数指向的BITMAPINFO结构的biBitCount成员。
// address of structure with bitmap info.
指向BITMAPINFO结构,描述lpbInit参数指向的数组的维度和颜色格式。
德鲁·塞奇
指定BITMAPINFO结构的bmiColors成员是否已初始化,如果是,是否bmiColors包含明确的红色,绿色,蓝色(RGB)值或调色板索引。德鲁·塞奇参数必须是以下值之一:
值 | 含义 |
DIB_PAL_COLORS | 提供了一个颜色表,由一组16位索引组成,该阵列将位于要选择位图的设备上下文的逻辑调色板中。 |
DIB_RGB_COLORS | 提供了颜色表并包含文字RGB值。 |
返回值
如果函数成功,则返回值是位图的句柄。
如果函数失败,返回值为NULL。
备注
不再支持fdwInit参数的CBM_CREATDIB标志。
当您不再需要位图时,请调用DeleteObject功能将其删除。
也可以看看
BITMAPINFOHEADER, BITMAPINFO, DeleteObject, GetDeviceCaps, GetSystemPaletteEntries, SelectObject