Структура CHOOSECOLOR
Структура CHOOSECOLOR содержит информацию, которую использует функция ChooseColor, чтобы инициализировать диалоговое окно Цвет (Color). После того, как пользователь закроет диалоговое окно, в этой структуре система возвращает информацию о выборе пользователя.
Синтаксис
typedef struct { DWORD lStructSize; HWND hwndOwner; HWND hInstance; COLORREF rgbResult; COLORREF *lpCustColors; DWORD Flags; LPARAM lCustData; LPCCHOOKPROC lpfnHook; LPCTSTR lpTemplateName; } CHOOSECOLOR, *LPCHOOSECOLOR; |
lStructSize
Определяет длину структуры, в байтах.
hwndOwner
Дескриптор окна, которое владеет диалоговым окном. Этот элемент может быть любым допустимым дескриптором окна или он может быть значением ПУСТО (NULL), если у блока диалога нет владельца.
hInstance
Если в члене Flags установлен флажок CC_ENABLETEMPLATEHANDLE, член структуры hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок CC_ENABLETEMPLATE, hInstance - дескриптор модуля, который содержит шаблон диалогового окна, именованный при помощи члена lpTemplateName. Если ни CC_ENABLETEMPLATEHANDLE, ни CC_ENABLETEMPLATE не установлен, этот член игнорируется.
rgbResult
Если флажок CC_RGBINIT установлен, член rgbResult определяет выбранный первоначально цвет, когда создавалось диалоговое окно. Если заданного значения цвета среди доступных цветов нет, система выбирает самый близкий доступный чистый цвет. Если rgbResult - нуль или CC_RGBINIT не установлен, первоначально выбранный цвет черный. Если пользователь щелкает мышью по кнопке OK, член rgbResult устанавливает цвет выбранный пользователем. Чтобы создать код цвета COLORREF, используйте макрос RGB.
lpCustColors
Указатель на массив из 16 значений, которые содержат для пользовательских палитр цветов в диалоговом окне значения красного, зеленого, синего (RGB). Если пользователь изменяет эти цвета, система модифицирует массив новыми значениями RGB. Чтобы сохранить новые пользовательские цвета в промежутке между вызовами функции ChooseColor, вы должны назначить для массива статическую память. Чтобы создать код цвета COLORREF, используйте макрос RGB.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно Цвет (Color). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных пользователем. Этот член может быть комбинацией следующих флажков.
Флажок |
Предназначение |
CC_ANYCOLOR | Заставляет диалоговое окно показывать на экране все доступные цвета в наборе основных цветов. |
CC_ENABLEHOOK |
Подключает фильтр (hook) - процедуру, которая определена в члене lpfnHook этой структуры. Этот флажок используется только для того, чтобы инициализировать диалоговое окно. |
CC_ENABLETEMPLATE |
Указывает, что члены hInstance и lpTemplateName определяют шаблон диалогового окна, который используется вместо заданного по умолчанию шаблона. Этот флажок используется только для того, чтобы инициализировать диалоговое окно. |
CC_ENABLETEMPLATEHANDLE |
Указывает, что член структуры hInstance идентифицирует блок данных, который содержит предварительно загружаемый шаблон диалогового окна. Система игнорирует член lpTemplateName, если этот флажок установлен. Этот флажок используется только для инициализации диалогового окна. |
CC_FULLOPEN |
Заставляет диалоговое окно показывать дополнительные органы управления, которые позволяют пользователю создавать пользовательские цвета. Если этот флажок не установлен, пользователь должен щелкнуть мышью по кнопке Определить дополнительный цвет (Define Custom Color), чтобы показать органы управления дополнительным цветом. |
CC_PREVENTFULLOPEN |
Отключает кнопку Определить дополнительный цвет (Define Custom Colors). |
CC_RGBINIT |
Заставляет диалоговое окно использовать цвет, определяемый в члене rgbResult как исходный выбранный цвет. |
CC_SHOWHELP |
Заставляет диалоговое окно отображать на экране кнопку Справка (Help). Член hwndOwner должен определить окно, которое примет зарегистрированные сообщения HELPMSGSTRING, переданное диалоговым окном, когда пользователь щелкает мышью по кнопке Справка (Help). |
CC_SOLIDCOLOR | Заставляет диалоговое окно показывать на экране только чистые цветы в наборе основных цветов. |
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр (hook) - процедуру, идентифицированную членом lpfnHook. Когда система отправляет сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр lParam сообщения является указателем на структуру CHOOSECOLOR, определяемую, когда диалоговое окно было создано. Фильтр-процедура (hook) может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр (hook) - процедуру CCHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот член структуры игнорируется, если в члене Flags не установлен флажок CC_ENABLEHOOK.
lpTemplateName
Указатель на строку с нуль-терминатором в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном членом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для перечисления ресурсов диалогового окна, lpTemplateName может возвратить значение макрокомандой MAKEINTRESOURCE. Этот член игнорируется, если в члене Flags не установлен флажок CC_ENABLETEMPLATE.
Смотри также
Обзор Библиотека стандартных диалоговых окон, Структуры, используемые библиотекой стандартных диалоговых окон, CCHookProc, ChooseColor, MAKEINTRESOURCE, WM_INITDIALOG
Размещение и совместимость CHOOSECOLOR |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Заголовочный файл |
|
- объявлено в |
Commdlg.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |