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 调色板由 flRedflGreenflBlue 参数定义。
PAL_BGR 设备直接接受 RGB 颜色,B (蓝色) 作为最小有效字节。
PAL_CMYK 设备直接接受 CMYK 颜色,C (青色) 作为最小有效字节。
PAL_INDEXED 使用 cColorspulColors 提供 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, 则 flRedflGreenflBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 GDI 支持所有位字段组合。

[in] flGreen

如果 iMode 参数为 PAL_BITFIELDS, 则 flRedflGreenflBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 GDI 支持所有位字段组合。

[in] flBlue

如果 iMode 参数为 PAL_BITFIELDS, 则 flRedflGreenflBlue 参数是掩码,显示哪些位对应于红色、绿色和蓝色。 每个掩码必须包含连续的位,并且不应与其他掩码重叠。 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

另请参阅

DEVINFO

DrvSetPalette

EngDeletePalette