4.13 - Настройка диалогового окна Цвет (Color)

Чтобы настроить диалоговое окно Цвет (Color), вы можете использовать любой из нижеследующих следующих методов:

  1. Установить значения в структуре CHOOSECOLOR, когда создаете диалоговое окно.
  2. Обеспечить пользовательским шаблоном.
  3. Обеспечить фильтром - процедурой.

Вы можете изменять вид и поведение диалогового окна Цвет (Color), устанавливая флажки в элементе Flags структуры CHOOSECOLOR. Например, вы можете установить флажок CC_SOLIDCOLOR, чтобы предназначить диалоговое окно для показа только плотных тонов. Чтобы заставить диалоговое окно первоначально выбрать цвет, отличающийся от черного, установите флажок CC_RGBINIT и определите цвет в элементе rgbResult.

Вы можете дать пользовательский шаблон для Диалогового окна Цвет (Color), например, если вы желаете включить дополнительные элементы управления, которые являются уникальными в вашей прикладной программе. Функция ChooseColor использует ваш пользовательский шаблон вместо заданного по умолчанию шаблона.

Чтобы обеспечить пользовательским шаблоном для диалогового окна Цвет (Color)

  1. Создайте пользовательский шаблон, изменяя заданный по умолчанию шаблон, определяемый в файле COLOR.DLG. Идентификаторы элементов управления, используемые в заданном по умолчанию шаблоне диалогового окна Цвет (Color), определены в заголовочном файле COLORDLG.H.
  2. Используйте структуру CHOOSECOLOR, чтобы включить шаблон, как указано ниже:

Если ваш пользовательский шаблон - ресурс в прикладной программе или динамически компонуемой библиотеке, уставите флажок 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, чтобы получить идентификатор сообщения. Вы можете затем использовать идентификатор, чтобы обнаружить и обработать сообщения, посланные из диалогового окна, или посылать сообщения диалоговому окну.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 17.03.2002