描述
SetDIBits功能使用指定DIB中找到的颜色数据设置兼容位图(DDB)中的像素。
C++ 语法
int SetDIBits( __in HDC hdc, __in HBITMAP hbmp, __in UINT uStartScan, __in UINT cScanLines, __in const VOID *lpvBits, __in const BITMAPINFO *lpbmi, __in UINT fuColorUse ); |
PowerBASIC 语法
FUNCTION SetDIBits( _ BYVAL hdc AS DWORD, _ BYVAL hbmp AS DWORD, _ BYVAL uStartScan AS DWORD, _ BYVAL cScanLines AS DWORD, _ BYREF lpvBits AS ANY, _ BYREF lpbmi AS BITMAPINFO, BYVAL fuColorUse AS DWORD _ ) AS LONG |
参数
hdc
[in]处理设备上下文。
hbmp
[in]处理要使用指定DIB的颜色数据进行更改的兼容位图(DDB)。
uStartScan
[in]指定lpvBits参数指向的数组中与设备无关的颜色数据的起始扫描行。
cScanLines
[in]指定在包含设备无关颜色数据的数组中找到的扫描线数。
lpvBits
[in]指向DIB颜色数据的指针,以字节数组的形式存储。位图值的格式取决于由lpbmi参数指向的BITMAPINFO结构的biBitCount成员。
lpbmi
[in]指向包含DIB信息的BITMAPINFO结构的指针。
fuColorUse
[in]指定是否提供BITMAPINFO结构的bmiColors成员,如果是,是否bmiColors包含显式的红色,绿色,蓝色(RGB)值或调色板索引。fuColorUse参数必须是以下值之一。
值 |
含义 |
DIB_PAL_COLORS |
颜色表由由hDC参数标识的设备上下文的逻辑调色板中的16位索引阵列组成。 |
DIB_RGB_COLORS |
提供了颜色表,并包含文字RGB值。 |
返回值
如果功能成功,则返回值是复制的扫描行数。
如果函数失败,返回值为零。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.这可以是以下值。
值 |
含义 |
ERROR_INVALID_PARAMETER |
一个或多个输入参数无效。 |
备注
当位图位是系统调色板的索引时,获得最佳位图绘制速度。
应用程序可以通过调用GetSystemPaletteEntries函数来检索系统调色板的颜色和索引。在检索到颜色和索引后,应用程序可以创建DIB。
仅当为fuColorUse参数设置DIB_PAL_COLORS常数时,才会使用hDC参数标识的设备上下文;否则被忽略。
当应用程序调用此函数时,不得将骨形态发生蛋白参数标识的位图选择到设备上下文中。
除了RLE压缩位图之外,扫描线必须在DWORD上对齐。
自下而上的DIB的起源是位图的左下角;自上而下的DIB的起源是位图的左上角。
ICM:如果通过调用SetICMMode使iEnableICM参数设置为ICM_ON启用了颜色管理,则执行颜色管理。如果lpbmi指定的位图具有指定伽玛和端点成员的BITMAPV4HEADER或指定伽玛和端点成员或profileData和profileSize成员的BITMAPV5HEADER,则该调用将位图的像素视为在这些成员描述的颜色空间中表达,而不是在设备上下文的源颜色空间中。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)