SetDIBits()函数

函数功能:该函数使用指定的DIB位图中发现的颜色数据来设置位图中的像素。

参数:

hdc:指向设备环境中的句柄。

hbmp:指向位图的句柄。函数要使用指定DIB中的颜色数据对该位图进行更改。

uStartScan:为参数lpvBits指向的数组中的、与设备无关的颜色数据指定起始扫描线。

cScanLines:为包含与设备无关的颜色数据的数组指定扫描线数目。

lpvBits:指向DIB颜色数据的指针,这些数据存储在字节类型的数组中,位图值的格式取决于参数lpbmi指向的BITMAPINFO结构中的成员biBitCount。

lpbmi:指向BITMAPINFO数据结构的指针,该结构包含有关DIB的信息。

fuColorUse:指定是否提供了BITMAPINFO结构中的bmiColors成员,如果提供了,那么bmiColors是否包含了明确的RGB值或调色板索引。参数fuColorUse必须取下列值,各值的含义为:

DIB_PAL_COLORS:颜色表由16bit的索引值数组组成。这些值可以对由hdc参数标识的设备环境中的逻辑调色板进行索引。

DIB_RGB_COLORS:提供了颜色表,并且表中包含了原义的RGB值。

返回值:如果函数成功,那么返回值就是复制的扫描线数;如果函数失败,那么返回值是0。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

备注:当位图的位要索引到系统调色板时,可获取最佳的位图绘制速度。

应用程序可能通过调用GetSystemPaletteEntries函数来检索系统调色板颜色和索引。在检索到颜色和索引值之后,应用程序可以创建DIB,有关更多的信息,请参考系统调色板(System Paletle)。

只有在参数fuColorUse设置为DIB_PAL_COLORS常量时才使用参数hdc标识的设备环境,否则会忽略hdc参数中的值。

在应用程序调用该函数时,必须把由参数hbmp标识的位图选入到设备环境中。

自底向上的DIB位图的起始点是该位图的左下角处,自顶向下的DIB位图的起源点在该位图的左上角处。

ICM:颜色管理照样进行。如果指定的BITMAPINFO结构不是BITMAPV4HEADER或BITMAPV5HEADER,那么当前设备环境的颜色配置(profile)就用作源颜色配置。如果BITMAPINFO结构不是BITMAPV4HEADER或BITMAPV5HEADER,那么使用RGB颜色。如果指定的BITMAPINFO结构是BITMAPV4HEADER或BITMAPV5HEADER,那么与该位图有关的颜色配置(profile)被用作源颜色。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:wingdi.h:库文件:gdi32.lib。