Поделиться через


Класс CMFCColorButton

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

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