Расширение дополнительными цветами диалогового окна Цвет (Color) позволяет пользователю установить цвет, используя значения RGB или HSL. Однако, структура CHOOSECOLOR использует только значения RGB, чтобы сообщать цвета, созданные или выбранные пользователем.
Цветовая модель RGB
Цветовая модель RGB используется, чтобы обозначить цвета для дисплеев и других устройств, которые излучают свет. Допустимые значения красного, зеленого и синего цвета располагаются в диапазоне от 0 до 255, где 0 указывает на минимум интенсивности, а 255 указывает на максимум интенсивности. Следующая иллюстрация показывает, как основные цвета красный, зеленый, и синий могут быть объединены, чтобы произвести четыре дополнительных цвета. (Для устройств отображения, черный цвет - это результат того, когда значения красного, зеленого и синего цветов установлены в 0. В технологии дисплея, черный цвет - это отсутствие всех цветов).
Ниже перечислены восемь цветов и их связанные значения системе RGB.
Цвет Значения RGB Красный (Red) 255, 0, 0 Зеленый (Green) 0, 255, 0 Синий (Blue) 0, 0, 255 Голубой (Cyan) 0, 255, 255 Фиолетовый (Magenta) 255, 0, 255 Желтый (Yellow) 255, 255, 0 Белый (White) 255, 255, 255 Черный (Black) 0, 0, 0
Windows сохраняет внутренние цвета как 32-разрядные значения RGB, которые имеют следующую шестнадцатеричную форму:
0x00bbggrr
Младший байт содержит значение для относительной интенсивности красного; второй байт содержит значение для зеленого и третий байт содержит значение для синего цвета. Старший байт должен быть нулевой.
Вы можете использовать RGB макрокоманду, чтобы получить значение RGB, основанное на определяемых интенсивностях для красных, зеленых и синих компонентов. Используйте макрокоманды GetRValue, GetBValue и GetGValue, чтобы извлечь индивидуальные цвета из значений цветов RGB.
Цветовая модель HSL
Диалоговое окно Цвет (Color) предоставляет средства управления для определения значений HSL. Следующая иллюстрация показывает управление цветовым спектром и плавной регулировкой яркости, которые появляются в диалоговом окне Цвет (Color). Иллюстрация также показывает диапазоны значений, которые пользователь может устанавливать с этими средствами управления.
В диалоговом окне Цвет (Color), насыщенность и значения яркости должна быть в диапазоне 0 до 240, и значение оттенка должно быть в диапазоне 0 до 239.
Преобразование значений HSL в значения RGB
Процедура диалогового окна, данная в файле COMDLG32.DLL для диалогового окна Цвет (Color) содержит код, который преобразовывает значения HSL в соответствующие значения RGB. Ниже - несколько цветов и их связанные значения HSL и RGB.
Цвет Значения HSL Значения RGB Красный (Red) (0, 240, 120) (255, 0, 0) Зеленый (Green) (40, 240, 120) (255, 255, 0) Синий (Blue) (80, 240, 120) (0, 255, 0) Голубой (Cyan) (120, 240, 120) (0, 255, 255) Фиолетовый (Magenta) (160, 240, 120) (0, 0, 255) Желтый (Yellow) (200, 240, 120) (255, 0, 255) Белый (White) (0, 0, 240) (255, 255, 255) Черный (Black) (0, 0, 0) (0, 0, 0)