Класс CMFCBaseVisualManager
Слой между производными визуальными диспетчерами и API темы Windows.
CMFCBaseVisualManager
загружает UxTheme.dll, если он доступен, и управляет доступом к методам API темы Windows.
Этот класс предназначен только для внутреннего использования.
Синтаксис
class CMFCBaseVisualManager: public CObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CMFCBaseVisualManager::CMFCBaseVisualManager | Создает и инициализирует объект CMFCBaseVisualManager . |
CMFCBaseVisualManager::~CMFCBaseVisualManager |
Деструктор. |
Открытые методы
Имя | Описание |
---|---|
CMFCBaseVisualManager::D rawCheckBox | Рисует элемент управления флажком с помощью текущей темы Windows. |
CMFCBaseVisualManager::D rawComboBorder | Рисует границу поля со списком с помощью текущей темы Windows. |
CMFCBaseVisualManager::D rawComboDropButton | Рисует кнопку раскрывающегося списка со списком с помощью текущей темы Windows. |
CMFCBaseVisualManager::D rawPushButton | Рисует кнопку нажатия с помощью текущей темы Windows. |
CMFCBaseVisualManager::D rawRadioButton | Рисует элемент управления переключателем с помощью текущей темы Windows. |
CMFCBaseVisualManager::D rawStatusBarProgress | Рисует индикатор хода выполнения на элементе управления строкой состояния ( класс CMFCStatusBar) с помощью текущей темы Windows. |
CMFCBaseVisualManager::FillReBarPane | Заполняет фон элемента управления перекладиной с помощью текущей темы Windows. |
CMFCBaseVisualManager::GetStandardWindowsTheme | Возвращает текущую тему Windows. |
Защищенные методы
Имя | Описание |
---|---|
CMFCBaseVisualManager::CleanUpThemes | Вызовы CloseThemeData всех дескрипторов, полученных в UpdateSystemColors . |
CMFCBaseVisualManager::UpdateSystemColors | Вызовы OpenThemeData для получения дескрипторов для рисования различных элементов управления: окон, панелей инструментов, кнопок и т. д. |
Замечания
Не нужно создавать экземпляры объектов этого класса напрямую.
Так как это базовый класс для всех визуальных менеджеров, можно просто вызвать CMFCVisualManager::GetInstance, получить указатель на текущий визуальный диспетчер и получить доступ к методам для CMFCBaseVisualManager
использования этого указателя. Однако если вам нужно отобразить элемент управления с помощью текущей темы Windows, лучше использовать CMFCVisualManagerWindows
интерфейс.
Иерархия наследования
Требования
Заголовок: afxvisualmanager.h
CMFCBaseVisualManager::CleanUpThemes
Вызовы CloseThemeData
всех дескрипторов, полученных в UpdateSystemColors
.
void CleanUpThemes();
Замечания
Только для внутреннего пользования.
CMFCBaseVisualManager::CMFCBaseVisualManager
Создает и инициализирует объект CMFCBaseVisualManager
.
CMFCBaseVisualManager();
CMFCBaseVisualManager::D rawCheckBox
Рисует элемент управления флажком с помощью текущей темы Windows.
virtual BOOL DrawCheckBox(
CDC* pDC,
CRect rect,
BOOL bHighlighted,
int nState,
BOOL bEnabled,
BOOL bPressed);
);
Параметры
pDC
[in] Указатель на контекст устройства
rect
[in] Ограничивающий прямоугольник флажка.
bHighlighted
[in] Указывает, выделен ли флажок.
nState
[in] 0 для снятой проверки, 1 для проверенного нормального,
2 для смешанного нормального.
bEnabled
[in] Указывает, включен ли флажок.
bPressed
[in] Указывает, нажимается ли флажок.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
Значения nState соответствуют следующим стилям флажка.
nState | Стиль флажка |
---|---|
0 | CBS_UNCHECKEDNORMAL |
1 | CBS_CHECKEDNORMAL |
2 | CBS_MIXEDNORMAL |
CMFCBaseVisualManager::D rawComboBorder
Рисует границу поля со списком с помощью текущей темы Windows.
virtual BOOL DrawComboBorder(
CDC* pDC,
CRect rect,
BOOL bDisabled,
BOOL bIsDropped,
BOOL bIsHighlighted);
Параметры
pDC
[in] Указатель на контекст устройства.
rect
[in] Ограничивающий прямоугольник границы со списком.
bDisabled
[in] Указывает, отключена ли граница поля со списком.
bIsDropped
[in] Указывает, удаляется ли граница поля со списком.
bIsHighlighted
[in] Указывает, выделена ли граница поля со списком.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::D rawComboDropButton
Рисует кнопку раскрывающегося списка со списком с помощью текущей темы Windows.
virtual BOOL DrawComboDropButton(
CDC* pDC,
CRect rect,
BOOL bDisabled,
BOOL bIsDropped,
BOOL bIsHighlighted);
Параметры
pDC
[in] Указатель на контекст устройства.
rect
[in] Ограничивающий прямоугольник раскрывающегося списка со списком.
bDisabled
[in] Указывает, отключена ли кнопка раскрывающегося списка со списком.
bIsDropped
[in] Указывает, удаляется ли кнопка раскрывающегося списка со списком.
bIsHighlighted
[in] Указывает, выделена ли кнопка раскрывающегося списка со списком.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::D rawPushButton
Рисует кнопку нажатия с помощью текущей темы Windows.
virtual BOOL DrawPushButton(
CDC* pDC,
CRect rect,
CMFCButton* pButton,
UINT uiState);
Параметры
pDC
[in] Указатель на контекст устройства.
rect
[in] Ограничивающий прямоугольник кнопки нажатия.
pButton
[in] Указатель на объект класса CMFCButton для рисования.
uiState
[in] Игнорировать. Состояние взято из pButton.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::D rawRadioButton
Рисует элемент управления переключателем с помощью текущей темы Windows.
virtual BOOL DrawRadioButton(
CDC* pDC,
CRect rect,
BOOL bHighlighted,
BOOL bChecked,
BOOL bEnabled,
BOOL bPressed);
Параметры
pDC
[in] Указатель на контекст устройства.
rect
[in] Ограничивающий прямоугольник переключателя.
bHighlighted
[in] Указывает, выделена ли переключатель.
bChecked
[in] Указывает, установлен ли переключатель.
bEnabled
[in] Указывает, включена ли переключатель.
bPressed
[in] Указывает, нажимается ли переключатель.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::D rawStatusBarProgress
Рисует индикатор хода выполнения на панели состояния ( класс CMFCStatusBar) с помощью текущей темы Windows.
virtual BOOL DrawStatusBarProgress(
CDC* pDC,
CMFCStatusBar* pStatusBar,
CRect rectProgress,
int nProgressTotal,
int nProgressCurr,
COLORREF clrBar,
COLORREF clrProgressBarDest,
COLORREF clrProgressText,
BOOL bProgressText);
Параметры
pDC
[in] Указатель на контекст устройства.
pStatusBar
[in] Указатель на строку состояния. Это значение игнорируется.
rectProgres
[in] Ограничивающий прямоугольник индикатора хода выполнения в координатах pDC .
nProgressTotal
[in] Общее значение хода выполнения.
nProgressCurr
[in] Текущее значение хода выполнения.
clrBar
[in] Начальный цвет. CMFCBaseVisualManager
игнорирует это. Производные классы могут использовать его для градиентов цветов.
clrProgressBarDest
[in] Цвет конца. CMFCBaseVisualManager
игнорирует это. Производные классы могут использовать его для градиентов цветов.
clrProgressText
[in] Цвет текста хода выполнения. CMFCBaseVisualManager
игнорирует это. Цвет текста определяется .afxGlobalData.clrBtnText
bProgressText
[in] Указывает, следует ли отображать текст хода выполнения.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::FillReBarPane
Заполняет фон элемента управления перекладиной с помощью текущей темы Windows.
virtual void FillReBarPane(
CDC* pDC,
CBasePane* pBar,
CRect rectClient);
Параметры
pDC
[in] Указатель на контекст устройства.
pBar
[in] Указатель на панель, фон которой должен быть нарисован.
rectClient
[in] Ограничивающий прямоугольник области, который нужно заполнить.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если ВКЛЮЧЕН API темы; в противном случае ЗНАЧЕНИЕ FALSE.
CMFCBaseVisualManager::GetStandardWindowsTheme
Возвращает текущую тему Windows.
virtual WinXpTheme GetStandardWindowsTheme();
Возвращаемое значение
Выбранный в данный момент цвет темы Windows. Может быть одним из следующих перечисленных значений:
WinXpTheme_None
— тема не включена.WinXpTheme_NonStandard
— выбрана нестандартная тема (то есть выбрана тема, но ни одна из перечисленных ниже).WinXpTheme_Blue
- синяя тема (Луна).WinXpTheme_Olive
- оливковая тема.WinXpTheme_Silver
- серебряная тема.
CMFCBaseVisualManager::UpdateSystemColors
Вызовы OpenThemeData
для получения дескрипторов для рисования различных элементов управления: окон, панелей инструментов, кнопок и т. д.
void UpdateSystemColors();
Замечания
Только для внутреннего пользования.