Поделиться через


Функция 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 Массив цветов RGB предоставляется с cColors и pulColors.
PAL_RGB Устройство принимает цвета RGB напрямую, при этом R (красный) является наименее значимым байтом.

[in] cColors

Если параметр iMode имеет значение PAL_INDEXED, cColors указывает количество цветов, предоставленных в массиве, на который указывает pulColors. В противном случае этот параметр должен быть равен нулю.

[in] pulColors

Указатель на начало массива значений ULONG, если iMode PAL_INDEXED. Низкий порядок 3 байта каждого ULONG определяет цвета 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). Все остальные записи должны быть заданы таким образом, чтобы у записей, индексы которых являются дополнением друг к другу, были цвета, которые сильно контрастируют. Например, если 0x9 элемента из палитры 16 элементов имеет значение чисто-зеленый (0,255,0), 0x6 (=~0x9) следует задать цвет, который хорошо контрастирует с зеленым, например темно-фиолетовый (128,0,128). Настройка записей таким образом позволяет использовать растровые операции XOR в разумном режиме. Если палитра больше не нужна, ее следует удалить с помощью EngDeletePalette.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

См. также раздел

DEVINFO

DrvSetPalette

EngDeletePalette