Класс CMFCColorButton

CMFCColorButton Классы CMFCColorBar используются вместе для реализации элемента управления выбора цветов.

Синтаксис

class CMFCColorButton : public CMFCButton

Участники

Открытые конструкторы

Имя Описание
CMFCColorButton::CMFCColorButton Создает новый объект CMFCColorButton.

Открытые методы

Имя Описание
CMFCColorButton::EnableAutomaticButton Включает и отключает кнопку "автоматически", расположенную над обычными кнопками цвета. (Стандартная автоматическая кнопка "Стандартная система" помечена Автоматически.)
CMFCColorButton::EnableOtherButton Включает и отключает кнопку "другой", расположенную под обычными кнопками цвета. (Стандартная система "другая" кнопка помечена Дополнительные цвета.)
CMFCColorButton::GetAutomaticColor Извлекает текущий автоматический цвет.
CMFCColorButton::GetColor Извлекает цвет кнопки.
CMFCColorButton::SetColor Задает цвет кнопки.
CMFCColorButton::SetColorName Задает имя цвета.
CMFCColorButton::SetColumnsNumber Задает количество столбцов в диалоговом окне выбора цвета.
CMFCColorButton::SetDocumentColors Задает список цветов, которые отображаются в диалоговом окне выбора цветов.
CMFCColorButton::SetPalette Задает палитру стандартных цветов отображения.
CMFCColorButton::SizeToContent Изменяет размер элемента управления кнопкой в зависимости от размера текста и изображения.

Защищенные методы

Имя Описание
CMFCColorButton::IsDrawXPTheme Указывает, отображается ли текущая кнопка цвета в визуальном стиле Windows XP.
CMFCColorButton::OnDraw Вызывается платформой для отображения изображения кнопки.
CMFCColorButton::OnDrawBorder Вызывается платформой для отображения границы кнопки.
CMFCColorButton::OnDrawFocusRect Вызывается платформой для отображения прямоугольника фокуса, когда кнопка имеет фокус.
CMFCColorButton::OnShowColorPopup Вызывается платформой при отображении диалогового окна выбора цвета.
CMFCColorButton::RebuildPalette Инициализирует защищенный m_pPalette элемент данных в указанную палитру или системную палитру по умолчанию.
CMFCColorButton::UpdateColor Вызывается платформой, когда пользователь выбирает цвет из палитры диалогового окна выбора цветов.

Элементы данных

Имя Описание
m_bAltColorDlg Логическое значение. Если значение TRUE, платформа отображает диалоговое окно цвета CMFCColorDialog при нажатии другой кнопки или, если значение FALSE, диалоговое окно цвета системы. Значение по умолчанию — TRUE. Дополнительные сведения см. в разделе CMFCColorButton::EnableOtherButton.
m_bAutoSetFocus Логическое значение. Если значение TRUE, платформа задает фокус на цветовом меню при отображении меню или если значение FALSE не изменяет фокус. Значение по умолчанию — TRUE.
CMFCColorButton::m_bEnabledInCustomizeMode Указывает, включен ли режим настройки для кнопки цвета.
m_Color Значение COLORREF. Содержит выбранный в данный момент цвет.
m_ColorAutomatic Значение COLORREF. Содержит выбранный в данный момент цвет по умолчанию.
m_Colors CArray значений COLORREF. Содержит доступные в настоящее время цвета.
m_lstDocColors Список значений COLORREF. Содержит текущие цвета документа.
m_nColumns Целое число. Содержит количество столбцов, отображаемых в сетке цветов в меню выбора цвета.
m_pPalette Указатель на CPalette. Содержит цвета, доступные в текущем меню выбора цвета.
m_pPopup Указатель на объект класса CMFCColorPopupMenu. Меню выбора цвета, отображаемое при нажатии кнопки цвета.
m_strAutoColorText Строка . Метка кнопки "автоматически" в меню выбора цвета.
m_strDocColorsText Строка . Метка кнопки в меню выбора цвета, отображающего цвета документа.
m_strOtherText Строка . Метка кнопки "другой" в меню выбора цвета.

Замечания

По умолчанию CMFCColorButton класс ведет себя как кнопка нажатия, которая открывает диалоговое окно выбора цвета. Диалоговое окно выбора цвета содержит массив небольших кнопок цвета и кнопку "другой", которая отображает пользовательский средство выбора цветов. (Стандартная система "другая" кнопка помечена Дополнительные цвета.) Когда пользователь выбирает новый цвет, CMFCColorButton объект отражает изменение и отображает выбранный цвет.

Создайте элемент управления цветной кнопкой непосредственно в коде или с помощью средства ClassWizard и шаблона диалогового окна. Если вы создаете элемент управления цветом, добавьте CMFCColorButton переменную в приложение, а затем вызовите конструктор и Create методы CMFCColorButton объекта. Если вы используете ClassWizard, добавьте CButton переменную в приложение, а затем измените тип переменной на CButtonCMFCColorButton.

Диалоговое окно выбора цвета ( класс CMFCColorBar) отображается методом CMFCColorButton::OnShowColorPopup , когда платформа вызывает OnLButtonDown обработчик событий. Метод CMFCColorButton::OnShowColorPopup можно переопределить для поддержки пользовательского выбора цвета.

Объект CMFCColorButton уведомляет его родителя о том, что цвет изменяется, отправив ему WM_COMMAND | BN_CLICKED уведомления. Родитель использует метод CMFCColorButton::GetColor для получения текущего цвета.

Пример

В следующем примере показано, как настроить цветную кнопку с помощью различных методов в CMFCColorButton классе. Методы задают цвет кнопки цвета и его количество столбцов, а также включить автоматические и другие кнопки. Этот пример является частью примера демонстрации строки состояния.

CMFCColorButton m_wndTextColor;
m_wndTextColor.EnableAutomaticButton(_T("Default"), afxGlobalData.clrBtnText);
m_wndTextColor.EnableOtherButton(_T("Other..."));
m_wndTextColor.SetColor((COLORREF)-1);
m_wndTextColor.SetColorName((COLORREF)-1, "Default Color");
m_wndTextColor.SetColumnsNumber(3);

Требования

Заголовок: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

Создает новый объект CMFCColorButton.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

Включите или отключите кнопку "автоматически" элемента управления выбора цветов и задайте автоматический (по умолчанию) цвет.

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE);

Параметры

lpszLabel
[in] Задает текст автоматической кнопки.

colorAutomatic
[in] Значение RGB, указывающее цвет автоматической кнопки по умолчанию.

bEnable
[in] Указывает, включена ли или отключена автоматическая кнопка.

Замечания

CMFCColorButton::EnableOtherButton

Включите или отключите кнопку "другой", которая отображается под обычными кнопками цвета.

void EnableOtherButton(
    LPCTSTR lpszLabel,
    BOOL bAltColorDlg=TRUE,
    BOOL bEnable=TRUE);

Параметры

lpszLabel
[in] Задает текст кнопки.

bAltColorDlg
[in] Указывает, открывается ли диалоговое окно CMFCColorDialog или диалоговое окно цвета системы, когда пользователь нажимает кнопку.

bEnable
[in] Указывает, включена ли кнопка "другой" или отключена.

Замечания

Нажмите кнопку "другой", чтобы отобразить диалоговое окно цвета. Если параметр bAltColorDlg имеет значение TRUE, отображается класс CMFCColorDialog; в противном случае отображается диалоговое окно цвета системы.

CMFCColorButton::GetAutomaticColor

Извлекает текущий автоматический (по умолчанию) цвет.

COLORREF GetAutomaticColor() const;

Возвращаемое значение

Значение RGB, представляющее текущий автоматический цвет.

Замечания

Текущий автоматический цвет задается методом CMFCColorButton::EnableAutomaticButton .

CMFCColorButton::GetColor

Извлекает выбранный в данный момент цвет.

COLORREF GetColor() const;

Возвращаемое значение

Значение RGB.

Замечания

CMFCColorButton::IsDrawXPTheme

Указывает, отображается ли текущая кнопка цвета в визуальном стиле Windows XP.

BOOL IsDrawXPTheme() const;

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если поддерживаются стили визуальных элементов, а текущая кнопка цвета отображается в визуальном стиле Windows XP; в противном случае — ЗНАЧЕНИЕ FALSE.

CMFCColorButton::m_bEnabledInCustomizeMode

Задает цветную кнопку для режима настройки.

BOOL m_bEnabledInCustomizeMode;

Замечания

Если необходимо добавить кнопку цвета на страницу диалогового окна настройки (или разрешить пользователю выбрать другой цвет во время настройки), включите кнопку, установив m_bEnabledInCustomizeMode для элемента значение TRUE. По умолчанию этот элемент имеет значение FALSE.

CMFCColorButton::OnDraw

Вызывается платформой для отрисовки изображения кнопки.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    UINT uiState);

Параметры

pDC
[in] Указывает на контекст устройства, используемый для отрисовки изображения кнопки.

rect
[in] Прямоугольник, ограничивающий кнопку.

uiState
[in] Указывает визуальное состояние кнопки.

Замечания

Переопределите этот метод, чтобы настроить процесс отрисовки.

CMFCColorButton::OnDrawBorder

Вызывается платформой для отображения границы кнопки.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect& rectClient,
    UINT uiState);

Параметры

pDC
[in] Указывает на контекст устройства, используемый для рисования границы.

rectClient
[in] Прямоугольник в контексте устройства, заданный параметром PDC , определяющим границы кнопки, которую необходимо нарисовать.

uiState
[in] Указывает визуальное состояние кнопки.

Замечания

Переопределите эту функцию, чтобы настроить внешний вид границы кнопки цвета.

CMFCColorButton::OnDrawFocusRect

Вызывается платформой для отображения прямоугольника фокуса, когда кнопка имеет фокус.

virtual void OnDrawFocusRect(
    CDC* pDC,
    const CRect& rectClient);

Параметры

pDC
[in] Указывает на контекст устройства, используемый для рисования прямоугольника фокуса.

rectClient
[in] Прямоугольник в контексте устройства, указанный параметром PDC , определяющим границы кнопки.

Замечания

Переопределите этот метод, чтобы настроить внешний вид прямоугольника фокуса.

CMFCColorButton::OnShowColorPopup

Вызывается перед отображением цветовой панели всплывающего окна.

virtual void OnShowColorPopup();

Замечания

CMFCColorButton::RebuildPalette

Инициализирует защищенный m_pPalette элемент данных в указанную палитру или системную палитру по умолчанию.

void RebuildPalette(CPalette* pPal);

Параметры

pPal
[in] Указатель на логическую палитру или NULL. Если значение NULL, используется системная палитра по умолчанию.

CMFCColorButton::SetColor

Задает цвет кнопки.

void SetColor(COLORREF color);

Параметры

color
[in] Значение RGB.

Замечания

CMFCColorButton::SetColorName

Задает имя цвета.

static void SetColorName(
    COLORREF color,
    const CString& strName);

Параметры

color
[in] Значение RGB цвета.

strName
[in] Имя цвета.

Замечания

Список имен цветов является глобальным для каждого приложения. Следовательно, этот метод передает параметры в CMFCColorBar::SetColorName.

CMFCColorButton::SetColumnsNumber

Определяет количество столбцов, отображаемых в таблице цветов, представленных пользователю во время процесса выбора цвета пользователя.

void SetColumnsNumber(int nColumns);

Параметры

nColumns
[in] Указывает количество столбцов.

Замечания

Пользователь может выбрать цвет из всплывающей панели цветов, отображающей таблицу предопределенных цветов. Используйте этот метод для определения количества столбцов в таблице.

CMFCColorButton::SetDocumentColors

Задает набор цветов и имя набора. Набор цветов отображается с помощью объекта класса CMFCColorBar.

void SetDocumentColors(
    LPCTSTR lpszLabel,
    CList<COLORREF,COLORREF>& lstColors);

Параметры

lpszLabel
[in] Указывает метку, отображаемую с набором цветов документа.

lstColors
[in] Ссылка на список значений RGB.

Замечания

Объект CMFCColorButton поддерживает список значений RGB, передаваемых в объект класса CMFCColorBar. При отображении цветовой панели эти цвета отображаются в специальном разделе, метка которого указана параметром lpszLabel .

CMFCColorButton::SetPalette

Задает стандартные цвета, отображаемые на всплывающей панели цветов.

void SetPalette(CPalette* pPalette);

Параметры

pPalette
[in] Указатель на цветовую палитру.

Замечания

CMFCColorButton::SizeToContent

Изменяет размер элемента управления кнопки, чтобы он соответствовал тексту и изображению.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

Параметры

bCalcOnly
[in] Если ненулевое значение, новый размер элемента управления кнопкой вычисляется, но фактический размер не изменяется.

Возвращаемое значение

Объект CSize , указывающий новый размер элемента управления кнопкой.

Замечания

CMFCColorButton::UpdateColor

Вызывается платформой, когда пользователь выбирает цвет из цветовой панели, отображающейся при нажатии кнопки цвета.

virtual void UpdateColor(COLORREF color);

Параметры

color
[in] Цвет, выбранный пользователем.

Замечания

Функция UpdateColor изменяет цвет выбранной кнопки и уведомляет его родителя, отправив WM_COMMAND сообщение со стандартным уведомлением BN_CLICKED. Используйте метод CMFCColorButton::GetColor, чтобы получить выбранный цвет.

См. также

Диаграмма иерархии
Классы
Класс CMFCButton
Класс CMFCColorBar
CMFCColorButton::OnShowColorPopup
COLORREF
Класс CPalette
Класс CArray
Класс CList
CString