Структура 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

Нет

Замечания по платформе

Не имеется

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz