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


Класс 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 интерфейс.

Иерархия наследования

CObject

CMFCBaseVisualManager

Требования

Заголовок: 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();

Замечания

Только для внутреннего пользования.

См. также

Диаграмма иерархии
Классы