Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов 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