Win32 API. Справочник по стандартному диалоговому окну
Страница 21. Структура CHOOSECOLOR


Структуры стандартного диалогового окна

Стандартные диалоговые окна используют ниже перечисленные структуры. 

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

Элементы
lStructSize
Определяет длину структуры, в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Этот элемент может быть любой правильный дескриптор окна или это может быть значение ПУСТО (NULL), если блок диалога не имеет владельца.
hInstance
Если флажок CC_ENABLETEMPLATEHANDLE установлен в элементе Flags, элемент hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если флажок CC_ENABLETEMPLATE установлен, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный при помощи элемента lpTemplateName. Если ни CC_ENABLETEMPLATEHANDLE, ни CC_ENABLETEMPLATE не установлен, этот элемент игнорируется.
rgbResult
Если флажок CC_RGBINIT установлен, элемент rgbResult определяет выбранный первоначально цвет, когда создавалось диалоговое окно. Если среди доступных цветов определяемого значения цвета нет, система выбирает самый близкий доступный чистый тон. Если rgbResult - нуль или CC_RGBINIT не установлен, первоначально выбранный цвет черный. Если пользователь щелкает мышью по кнопке OK, элемент rgbResult устанавливает цвет выбранный пользователем.
lpCustColors
Указатель на массив из 16 значений COLORREF, который содержит для пользовательских палитр цветов значения красного, зеленого, синего (RGB) в диалоговом окне. Если пользователь изменяет эти цвета, система модифицирует массив новыми значениями RGBChooseColor, вы должны распределить статическую память для массива.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать стандартное диалоговое окно Цвет (Color). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы показать ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • CC_ENABLEHOOK - Разрешает действие фильтр - процедуры, которая определена в элементе 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).

lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную элементом lpfnHook. Когда система передает сообщение WM_INITDIALOG фильтр - процедуре, параметр lParam сообщения является указателем на структуру CHOOSECOLOR, определяемую, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру CCHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок CC_ENABLEHOOK.
lpTemplateName
Указатель на строку с нуль-терминатором в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для перечисления ресурсов диалогового окна, значение lpTemplateName может быть возвращено макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок CC_ENABLETEMPLATE.

Смотри также
CCHookProc, ChooseColor, MAKEINTRESOURCE, WM_INITDIALOG

Размещение и совместимость CHOOSECOLOR

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлcommdlg.h
УникодWinNT
Замечания по платформеНе имеется

 

 
« Предыдущая статья   Следующая статья »