Структура CHOOSECOLORA (commdlg.h)

Содержит сведения, которые функция ChooseColor использует для инициализации диалогового окна Цвет . После закрытия пользователем диалогового окна система возвращает сведения о выборе пользователя в этой структуре.

Синтаксис

typedef struct tagCHOOSECOLORA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HWND         hInstance;
  COLORREF     rgbResult;
  COLORREF     *lpCustColors;
  DWORD        Flags;
  LPARAM       lCustData;
  LPCCHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
  LPEDITMENU   lpEditInfo;
} CHOOSECOLORA, *LPCHOOSECOLORA;

Члены

lStructSize

Тип: DWORD

Длина структуры (в байтах).

hwndOwner

Тип: HWND

Дескриптор для окна, которому принадлежит диалоговое окно. Это может быть любой допустимый дескриптор окна или значение NULL , если у диалогового окна нет владельца.

hInstance

Тип: HWND

Если флаг CC_ENABLETEMPLATEHANDLE задан в элементе Flags , hInstance — это дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флаг CC_ENABLETEMPLATE , hInstance — это дескриптор модуля, который содержит шаблон диалогового окна с именем члена lpTemplateName . Если ни CC_ENABLETEMPLATEHANDLE , ни CC_ENABLETEMPLATE не заданы, этот элемент игнорируется.

rgbResult

Тип: COLORREF

Если установлен флаг CC_RGBINIT , rgbResult задает цвет, изначально выбранный при создании диалогового окна. Если указанное значение цвета не входит в число доступных цветов, система выбирает ближайший доступный сплошной цвет. Если значение rgbResult равно нулю или CC_RGBINIT не задано, изначально выбранный цвет будет черным. Если пользователь нажимает кнопку ОК , rgbResult задает выбранный пользователем цвет. Чтобы создать значение цвета COLORREF , используйте макрос RGB .

lpCustColors

Тип: COLORREF*

Указатель на массив из 16 значений, содержащих значения красного, зеленого, синего цвета (RGB) для настраиваемых цветовых полей в диалоговом окне. Если пользователь изменяет эти цвета, система обновляет массив новыми значениями RGB. Чтобы сохранить новые пользовательские цвета между вызовами функции ChooseColor , необходимо выделить статическую память для массива. Чтобы создать значение цвета COLORREF , используйте макрос RGB .

Flags

Тип: DWORD

Набор битовых флагов, которые можно использовать для инициализации диалогового окна Цвет . Когда диалоговое окно возвращается, оно устанавливает эти флаги для указания входных данных пользователя. Этот элемент может быть сочетанием следующих флагов.

Значение Значение
CC_ANYCOLOR
0x00000100
Вызывает отображение в диалоговом окне всех доступных цветов в наборе базовых цветов.
CC_ENABLEHOOK
0x00000010
Включает процедуру перехватчика, указанную в элементе lpfnHook этой структуры. Этот флаг используется только для инициализации диалогового окна.
CC_ENABLETEMPLATE
0x00000020
Элементы hInstance и lpTemplateName указывают шаблон диалогового окна для использования вместо шаблона по умолчанию. Этот флаг используется только для инициализации диалогового окна.
CC_ENABLETEMPLATEHANDLE
0x00000040
Элемент hInstance определяет блок данных, содержащий предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpTemplateName , если указан этот флаг. Этот флаг используется только для инициализации диалогового окна.
CC_FULLOPEN
0x00000002
Вызывает отображение в диалоговом окне дополнительных элементов управления, позволяющих пользователю создавать пользовательские цвета. Если этот флаг не установлен, пользователь должен нажать кнопку Определить пользовательский цвет , чтобы отобразить настраиваемые элементы управления цветом.
CC_PREVENTFULLOPEN
0x00000004
Отключает кнопку Определить пользовательский цвет .
CC_RGBINIT
0x00000001
Вызывает использование в диалоговом окне цвета, указанного в элементе rgbResult , в качестве начального цвета.
CC_SHOWHELP
0x00000008
Вызывает отображение кнопки Справка в диалоговом окне. Участник hwndOwner должен указать окно для получения зарегистрированных сообщений HELPMSGSTRING , которые отправляет диалоговое окно, когда пользователь нажимает кнопку Справка .
CC_SOLIDCOLOR
0x00000080
Вызывает отображение в диалоговом окне только сплошных цветов в наборе базовых цветов.

lCustData

Тип: LPARAM

Определяемые приложением данные, которые система передает в процедуру перехватчика, определяемую членом lpfnHook . Когда система отправляет WM_INITDIALOG сообщение в процедуру перехватчика, параметр lParam сообщения является указателем на структуру CHOOSECOLOR, указанную при создании диалогового окна. Процедура перехватчика может использовать этот указатель для получения значения lCustData .

lpfnHook

Тип: LPCCHOOKPROC

Указатель на процедуру перехватчика CCHookProc , которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флаг CC_ENABLEHOOK.

lpTemplateName

Тип: LPCTSTR

Имя ресурса шаблона диалогового окна в модуле, определяемого элементом hInstance . Этот шаблон заменяется стандартным шаблоном диалогового окна. Для нумерованных ресурсов диалогового окна lpTemplateName может быть значением, возвращаемым макросом MAKEINTRESOURCE . Этот элемент игнорируется, если в элементе Flags не установлен флаг CC_ENABLETEMPLATE.

lpEditInfo

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть commdlg.h

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

CCHookProc

Выбор цвета

Общая библиотека диалоговых окон

Основные понятия

MAKEINTRESOURCE

Справочные материалы