setDIBits 函数 (wingdi.h)
SetDIBits 函数使用在指定的 DIB 中找到的颜色数据设置兼容位图 (DDB) 中的像素。
语法
int SetDIBits(
[in] HDC hdc,
[in] HBITMAP hbm,
[in] UINT start,
[in] UINT cLines,
[in] const VOID *lpBits,
[in] const BITMAPINFO *lpbmi,
[in] UINT ColorUse
);
参数
[in] hdc
设备上下文的句柄。
[in] hbm
将使用指定 DIB 中的颜色数据更改的兼容位图 (DDB) 的句柄。
[in] start
lpvBits 参数指向的数组中与设备无关的颜色数据的起始扫描行。
[in] cLines
在包含与设备无关的颜色数据的数组中找到的扫描行数。
[in] lpBits
指向 DIB 颜色数据的指针,存储为字节数组。 位图值的格式取决于 lpbmi 参数指向的 BITMAPINFO 结构的 biBitCount 成员。
[in] lpbmi
指向包含 DIB 相关信息的 BITMAPINFO 结构的指针。
[in] ColorUse
指示是否提供了 BITMAPINFO 结构的 bmiColors 成员,如果是,则指示 bmiColors 是否包含显式的红色、绿色、蓝色 (RGB) 值或调色板索引。 fuColorUse 参数必须是下列值之一。
值 | 含义 |
---|---|
|
颜色表由 hdc 参数标识的设备上下文的逻辑调色板中的 16 位索引数组组成。 |
|
提供了颜色表,其中包含文本 RGB 值。 |
返回值
如果函数成功,则返回值为复制的扫描行数。
如果函数失败,则返回值为零。
此值可以是以下值。
返回代码 | 说明 |
---|---|
|
一个或多个输入参数无效。 |
注解
当位图位成为系统调色板中的索引时,可获得最佳位图绘制速度。
应用程序可以通过调用 GetSystemPaletteEntries 函数来检索系统调色板颜色和索引。 检索颜色和索引后,应用程序可以创建 DIB。 有关详细信息,请参阅 系统调色板。
仅当为 fuColorUse 参数设置了DIB_PAL_COLORS常量时,才会使用 hdc 参数标识的设备上下文;否则将忽略它。
当应用程序调用此函数时,不得在设备上下文中选择 由 hbmp 参数标识的位图。
扫描行必须在 DWORD 上对齐,RLE 压缩位图除外。
自下而上 DIB 的原点是位图的左下角;自上而下 DDB 的原点是位图的左上角。
Icm: 如果已通过调用 SetICMMode 启用了颜色管理,且 iEnableICM 参数设置为 ICM_ON,则执行颜色管理。 如果 lpbmi 指定的位图具有指定 gamma 和 endpoints 成员 的BITMAPV4HEADER ,或指定 gamma 和 endpoints 成员或 profileData 和 profileSize 成员的 BITMAPV5HEADER ,则调用会将位图的像素视为在这些成员描述的颜色空间中表示,而不是在设备上下文的源颜色空间中表示。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wingdi.h (包括 Windows.h) |
Library | Gdi32.lib |
DLL | Gdi32.dll |