SetDIBits函数使用指定的与设备无关的位图(DIB)中找到的颜色数据设置位图中的像素。
int SetDIBits(
HDC 【HDC】, | //设备上下文的句柄 |
HBITMAP 【骨形态发生蛋白】, | //处理位图 |
UINT 【uStartScan】, | //启动扫描线 |
UINT 【cScanLines】, | //扫描行数 |
CONST VOID *【lpvBits】, | //位图位数组 |
CONST BITMAPINFO *【//具有位图信息的结构地址。】, | //具有位图数据的结构地址 |
UINT 【fuColorUse】 | //要使用的颜色索引类型 |
); |
参数
【HDC】
标识设备上下文。
【骨形态发生蛋白】
使用指定DIB的颜色数据标识要更改的位图。
【uStartScan】
指定由【lpvBits】参数指向的阵列中与设备无关的颜色数据的起始扫描行。
【cScanLines】
指定包含与设备无关的颜色数据的阵列中找到的扫描线数。
【lpvBits】
指向DIB颜色数据,存储为字节数组。位图值的格式取决于BITMAPINFO参数指向的BITMAPINFO结构的biBitCount成员。
【//具有位图信息的结构地址。】
指向包含DIB信息的BITMAPINFO数据结构。
【fuColorUse】
指定是否提供BITMAPINFO结构的bmiColors成员,如果是,是否bmiColors包含显式的红色,绿色,蓝色(RGB)值或调色板索引。【fuColorUse】参数必须是以下值之一:
值 | 含义 |
DIB_PAL_COLORS | 颜色表由由【HDC】参数标识的设备上下文的逻辑调色板中的16位索引阵列组成。 |
DIB_RGB_COLORS | 提供了颜色表,并包含文字RGB值。 |
返回值
如果功能成功,则返回值是复制的扫描行数。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
当位图位是系统调色板的索引时,获得最佳位图绘制速度。
应用程序可以通过调用GetSystemPaletteEntries函数来检索系统调色板的颜色和索引。在检索颜色和索引后,应用程序可以创建DIB。有关详细信息,请参阅系统调色板.
仅当为【fuColorUse】参数设置DIB_PAL_COLORS常数时,才使用【HDC】参数标识的设备上下文;否则被忽略。
当应用程序调用此函数时,不得将由【骨形态发生蛋白】参数标识的位图选择到设备上下文中。
自下而上的DIB的起源是位图的左下角;自上而下的DIB的起源是位图的左上角。
也可以看看