EngCreatePalette 函数 (winddi.h)
EngCreatePalette 函数将请求发送到 GDI 以创建 RGB 调色板。
语法
ENGAPI HPALETTE EngCreatePalette(
[in] ULONG iMode,
[in] ULONG cColors,
[in] ULONG *pulColors,
[in] FLONG flRed,
[in] FLONG flGreen,
[in] FLONG flBlue
);
参数
[in] iMode
指定如何定义调色板。 此参数可能是以下值之一:
值 | 含义 |
---|---|
PAL_BITFIELDS | 调色板由 flRed、 flGreen 和 flBlue 参数定义。 |
PAL_BGR | 设备直接接受 RGB 颜色,B (蓝色) 作为最小有效字节。 |
PAL_CMYK | 设备直接接受 CMYK 颜色,C (青色) 作为最小有效字节。 |
PAL_INDEXED | 使用 cColors 和 pulColors 提供 RGB 颜色数组。 |
PAL_RGB | 设备直接接受 RGB 颜色,R (红色) 为最小有效字节。 |
[in] cColors
如果 iMode 参数PAL_INDEXED, 则 cColors 指定 pulColors 指向的数组中提供的颜色数。 否则,此参数应为零。
[in] pulColors
指向 uLONG 值数组开头(如果 PAL_INDEXED iMode )的指针。 每个 ULONG 的低序 3 个字节定义调色板中的 RGB 颜色。
[in] flRed
如果 iMode 参数为 PAL_BITFIELDS, 则 flRed、 flGreen 和 flBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 GDI 支持所有位字段组合。
[in] flGreen
如果 iMode 参数为 PAL_BITFIELDS, 则 flRed、 flGreen 和 flBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 GDI 支持所有位字段组合。
[in] flBlue
如果 iMode 参数为 PAL_BITFIELDS, 则 flRed、 flGreen 和 flBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 GDI 支持所有位字段组合。
返回值
如果函数成功,则返回值是新调色板的句柄。 否则,它为零,并记录错误代码。
注解
驱动程序可以通过在 DEVINFO 结构中返回指向调色板的指针,将新调色板与设备相关联。
与设备关联的PAL_INDEXED调色板必须将其第一个索引项设置为黑色 (红色 = 0,绿色 = 0,蓝色 = 0) ,其最后一个索引项设置为白色 (255、255、255) 。 应设置所有其他条目,以便索引相互补充的条目具有鲜明对比的颜色。 例如,如果将 16 个条目调色板的条目0x9设置为纯绿色 (0,255,0) ,则条目0x6 (=~0x9) 应设置为与绿色形成鲜明对比的颜色,例如深紫色 (128,0,128) 。 以这种方式设置条目可让 XOR 光栅操作行为合理。 当不再需要调色板时,应使用 EngDeletePalette 将其删除。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 2000 及更高版本的 Windows 操作系统。 |
目标平台 | 通用 |
标头 | winddi.h (包括 Winddi.h) |
Library | Win32k.lib |
DLL | Win32k.sys |