Основные и дополнительные диалоговые окна Цвет (Color)
Диалоговое окно Цвет (Color) имеет основную и дополнительную (расширенную) версию. Основная версия имеет органы управления, которые отображают основные и дополнительные цвета, из которых пользователь может выбирать. Дополнительная версия включает в себя основные органы управления и имеет дополнительные органы управления, которые дают возможность пользователю создавать дополнительные (пользовательские) цвета.
Основная версия диалогового окна Цвет (Color) включает кнопку Определение дополнительного цвета (Define Custom Colors). Пользователь может щелкнуть по этой кнопке, чтобы развернуть на экране расширенную версию окна. Вы можете предписать диалоговому окну Цвет (Color), чтобы оно всегда показывало на экране это дополнение, устанавливая в члене Flags структуры CHOOSECOLOR флажок CC_FULLOPEN. Чтобы запретить пользователю создавать дополнительные цвета, Вы можете установить флажок CC_PREVENTFULLOPEN, чтобы отключить кнопку Определение дополнительного цвета (Define Custom Colors).
Основные цвета представляют набор цветов, доступных на заданном устройстве. Фактическое число цветов, отображаемых на экране, обуславливается драйвером дисплея. Например, драйвер VGA показывает на экране 48 цветов, а монохромный драйвер дисплея отображает только 16.
Дополнительные цвета - это те, которые Вы определяете, или которые создает пользователь. Когда Вы создаете диалоговое окно Цвет (Color), то должны использовать член lpCustColors структуры CHOOSECOLOR, чтобы установить начальные величины для этих 16 дополнительных цветов. Если расширенная версия диалогового окна Цвет (Color) является открытой, пользователь может создать дополнительный цвет одним из нижеследующих способов:
Чтобы добавить новый дополнительный цвет для вывода на экран, пользователь может щелкнуть по кнопке Добавить дополнительный цвет (Add to Custom Colors). Это действие заставляет диалоговое окно копировать RGB - значение нового цвета в соответствующий элемент в массиве, на который указывает член lpCustColors структуры. Чтобы сберечь новые дополнительные цвета между вызовами функции ChooseColor, вам следует назначить статическую память для массива. Для получения дополнительной информации о RGB и HSL цветовых моделях, обратитесь к статье Цветные модели, используемые диалоговым окном Цвет (Color).