Класс 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
переменную в приложение, а затем измените тип переменной на CButton
CMFCColorButton
.
Диалоговое окно выбора цвета ( класс 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