CMFCBaseVisualManager Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at CMFCBaseVisualManager Class.
A layer between derived visual managers and the Windows Theme API.
CMFCBaseVisualManager
loads UxTheme.dll, if available, and manages access to Windows Theme API methods.
This class is for internal use only.
Syntax
class CMFCBaseVisualManager: public CObject
Members
Public Constructors
Name | Description |
CMFCBaseVisualManager::CMFCBaseVisualManager | Constructs and initializes a CMFCBaseVisualManager object. |
CMFCBaseVisualManager::~CMFCBaseVisualManager |
Destructor. |
Public Methods
Name | Description |
CMFCBaseVisualManager::DrawCheckBox | Draws a check box control by using the current Windows theme. |
CMFCBaseVisualManager::DrawComboBorder | Draws a combo box border using the current Windows theme. |
CMFCBaseVisualManager::DrawComboDropButton | Draws a combo box drop-down button using the current Windows theme. |
CMFCBaseVisualManager::DrawPushButton | Draws a push button using the current Windows theme. |
CMFCBaseVisualManager::DrawRadioButton | Draws a radio button control by using the current Windows theme. |
CMFCBaseVisualManager::DrawStatusBarProgress | Draws a progress bar on a status bar control ( CMFCStatusBar Class) using the current Windows theme. |
CMFCBaseVisualManager::FillReBarPane | Fills the background of the rebar control by using the current Windows theme. |
CMFCBaseVisualManager::GetStandardWindowsTheme | Gets the current Windows theme. |
Protected Methods
Name | Description |
CMFCBaseVisualManager::CleanUpThemes | Calls CloseThemeData for all handles obtained in UpdateSystemColors . |
CMFCBaseVisualManager::UpdateSystemColors | Calls OpenThemeData to obtain handles for drawing various controls: windows, toolbars, buttons, and so on. |
Remarks
You do not have to instantiate objects of this class directly.
Because it is a base class for all visual managers, you can just call CMFCVisualManager::GetInstance, obtain a pointer to the current Visual Manager, and access the methods for CMFCBaseVisualManager
using that pointer. However, if you have to display a control by using the current Windows theme, it is better to use the CMFCVisualManagerWindows
interface.
Inheritance Hierarchy
Requirements
Header: afxvisualmanager.h
CMFCBaseVisualManager::CleanUpThemes
Calls CloseThemeData
for all handles obtained in UpdateSystemColors
.
void CleanUpThemes();
Remarks
For internal use only.
CMFCBaseVisualManager::CMFCBaseVisualManager
Constructs and initializes a CMFCBaseVisualManager
object.
CMFCBaseVisualManager();
CMFCBaseVisualManager::DrawCheckBox
Draws a check box control by using the current Windows theme.
virtual BOOL DrawCheckBox(
CDC* pDC,
CRect rect,
BOOL bHighlighted,
int nState,
BOOL bEnabled,
BOOL bPressed);
);
Parameters
[in] pDC
A pointer to a device context
[in] rect
The bounding rectangle of the check box.
[in] bHighlighted
Specifies whether the check box is highlighted.
[in] nState
0 for unchecked, 1 for checked normal,
2 for mixed normal.
[in] bEnabled
Specifies whether the check box is enabled.
[in] bPressed
Specifies whether the check box is pressed.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
Remarks
The values of nState
correspond to the following check box styles.
nState | Check box style |
---|---|
0 | CBS_UNCHECKEDNORMAL |
1 | CBS_CHECKEDNORMAL |
2 | CBS_MIXEDNORMAL |
CMFCBaseVisualManager::DrawComboBorder
Draws the combo box border using the current Windows theme.
virtual BOOL DrawComboBorder(
CDC* pDC,
CRect rect,
BOOL bDisabled,
BOOL bIsDropped,
BOOL bIsHighlighted);
Parameters
[in] pDC
A pointer to a device context.
[in] rect
Bounding rectangle of the combo box border.
[in] bDisabled
Specifies whether the combo box border is disabled.
[in] bIsDropped
Specifies whether the combo box border is dropped down.
[in] bIsHighlighted
Specifies whether the combo box border is highlighted.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::DrawComboDropButton
Draws a combo box drop-down button using the current Windows theme.
virtual BOOL DrawComboDropButton(
CDC* pDC,
CRect rect,
BOOL bDisabled,
BOOL bIsDropped,
BOOL bIsHighlighted);
Parameters
Parameter | Description |
---|---|
[in] pDC |
A pointer to a device context. |
[in] rect |
The bounding rectangle of the combo box drop-down button. |
[in] bDisabled |
Specifies whether the combo box drop-down button is disabled. |
[in] bIsDropped |
Specifies whether the combo box drop-down button is dropped down. |
[in] bIsHighlighted |
Specifies whether the combo box drop-down button is highlighted. |
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::DrawPushButton
Draws a push button using the current Windows theme.
virtual BOOL DrawPushButton(
CDC* pDC,
CRect rect,
CMFCButton* pButton,
UINT uiState);
Parameters
[in] pDC
A pointer to a device context.
[in] rect
The bounding rectangle of the push button.
[in] pButton
A pointer to the CMFCButton Class object to draw.
[in] uiState
Ignored. The state is taken from pButton
.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::DrawRadioButton
Draws a radio button control by using the current Windows theme.
virtual BOOL DrawRadioButton(
CDC* pDC,
CRect rect,
BOOL bHighlighted,
BOOL bChecked,
BOOL bEnabled,
BOOL bPressed);
Parameters
[in] pDC
A pointer to a device context.
[in] rect
The bounding rectangle of the radio button.
[in] bHighlighted
Specifies whether the radio button is highlighted.
[in] bChecked
Specifies whether the radio button is checked.
[in] bEnabled
Specifies whether the radio button is enabled.
[in] bPressed
Specifies whether the radio button is pressed.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::DrawStatusBarProgress
Draws progress bar on status bar control ( CMFCStatusBar Class) using the current Windows theme.
virtual BOOL DrawStatusBarProgress(
CDC* pDC,
CMFCStatusBar* pStatusBar,
CRect rectProgress,
int nProgressTotal,
int nProgressCurr,
COLORREF clrBar,
COLORREF clrProgressBarDest,
COLORREF clrProgressText,
BOOL bProgressText);
Parameters
[in] pDC
A pointer to a device context.
[in] pStatusBar
A pointer to status bar. This value is ignored.
[in] rectProgress
The bounding rectangle of the progress bar in pDC
coordinates.
[in] nProgressTotal
The total progress value.
[in] nProgressCurr
The current progress value.
[in] clrBar
The start color. CMFCBaseVisualManager
ignores this. Derived classes can use it for color gradients.
[in] clrProgressBarDest
The end color. CMFCBaseVisualManager
ignores this. Derived classes can use it for color gradients.
[in] clrProgressText
Progress text color. CMFCBaseVisualManager
ignores this. The text color is defined by afxGlobalData.clrBtnText
.
[in] bProgressText
Specifies whether to display progress text.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::FillReBarPane
Fills the background of the rebar control by using the current Windows theme.
virtual void FillReBarPane(
CDC* pDC,
CBasePane* pBar,
CRect rectClient);
Parameters
[in] pDC
A pointer to a device context.
[in] pBar
A pointer to a pane whose background should be drawn.
[in] rectClient
The bounding rectangle of the area to be filled.
Return Value
TRUE
if Theme API is enabled; otherwise FALSE
.
CMFCBaseVisualManager::GetStandardWindowsTheme
Gets the current Windows theme.
virtual WinXpTheme GetStandardWindowsTheme();
Return Value
The currently selected Windows Theme color. Can be one of the following enumerated values:
WinXpTheme_None
- there is no theme enabled.WinXpTheme_NonStandard
- non standard theme is selected (meaning a theme is selected, but none from the list below).WinXpTheme_Blue
- blue theme (Luna).WinXpTheme_Olive
- olive theme.WinXpTheme_Silver
- silver theme.
CMFCBaseVisualManager::UpdateSystemColors
Calls OpenThemeData
to obtain handles for drawing various controls: windows, toolbars, buttons, and so on.
void UpdateSystemColors();
Remarks
For internal use only.