Чтобы настроить диалоговое окно Цвет (Color), вы можете использовать любой из нижеследующих следующих методов:
Вы можете изменять вид и поведение диалогового окна Цвет (Color), устанавливая флажки в элементе Flags структуры CHOOSECOLOR. Например, вы можете установить флажок CC_SOLIDCOLOR, чтобы предназначить диалоговое окно для показа только плотных тонов. Чтобы заставить диалоговое окно первоначально выбрать цвет, отличающийся от черного, установите флажок CC_RGBINIT и определите цвет в элементе rgbResult.
Вы можете дать пользовательский шаблон для Диалогового окна Цвет (Color), например, если вы желаете включить дополнительные элементы управления, которые являются уникальными в вашей прикладной программе. Функция ChooseColor использует ваш пользовательский шаблон вместо заданного по умолчанию шаблона.
Чтобы обеспечить пользовательским шаблоном для диалогового окна Цвет (Color)
Если ваш пользовательский шаблон - ресурс в прикладной программе или динамически компонуемой библиотеке, уставите флажок CC_ENABLETEMPLATE в элементе Flags. Используйте элементы структуры hInstance и lpTemplateName, чтобы идентифицировать модуль и имя ресурса.
Или
Если ваш пользовательский шаблон - уже в памяти, установите флажок CC_ENABLETEMPLATEHANDLE. Используйте элемент hInstance, чтобы идентифицировать объект памяти, который содержит шаблон.
Вы можете обеспечить диалоговое окно Цвет (Color) фильтром - процедурой CCHookProc. Фильтр - процедура может обрабатывать сообщения, пересылаемые в диалоговое окно. Она может также использовать зарегистрированные сообщения, которые управляют поведением диалогового окна. Если вы используете пользовательский шаблон, чтобы определить дополнительные средства управления, вы должны обеспечить фильтром - процедурой, чтобы обрабатывать вводимую информацию для ваших элементов управления.
Чтобы включить фильтр - процедуру для диалогового окна Цвет (Color)
1. Установите флажок CC_ENABLEHOOK в элементе Flags структуры CHOOSECOLOR.
В элементе lpfnHook определите адрес фильтра - процедуры.
После обработки сообщения WM_INITDIALOG, процедура диалогового окна посылает сообщение WM_INITDIALOG фильтру - процедуре. Параметр этого сообщения lParam - указатель на структуру CHOOSECOLOR, используемую, чтобы инициализировать диалоговое окно.
Диалоговое окно посылает зарегистрированное сообщение COLOROKSTRING фильтру - процедуре, когда пользователь щелкает мышью по кнопке OK. Фильтр - процедура может отклонить выбранный цвет и заставить диалоговое окно оставаться открытым, возвращая нуль, когда оно принимает это сообщение. Фильтр - процедура может заставить диалоговое окно выбрать специфический цвет, посылая зарегистрированное сообщение SETRGBSTRING диалоговому окну. Чтобы использовать эти зарегистрированные сообщения, вы должны передать константы COLOROKSTRING и SETRGBSTRING в функцию RegisterWindowMessage, чтобы получить идентификатор сообщения. Вы можете затем использовать идентификатор, чтобы обнаружить и обработать сообщения, посланные из диалогового окна, или посылать сообщения диалоговому окну.