CMFCBaseVisualManager 類別
衍生的視覺管理員與 Windows 主題 API 之間的層次。
CMFCBaseVisualManager
載入UxTheme.dll,如果有的話,並管理對 Windows 主題 API 方法的存取。
這個類別僅供內部使用。
語法
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 | 使用目前的 Windows 主題,在狀態列控件上繪製進度列 ( CMFCStatusBar 類別)。 |
CMFCBaseVisualManager::FillReBarPane | 使用目前的 Windows 主題填滿 Rebar 控件的背景。 |
CMFCBaseVisualManager::GetStandardWindowsTheme | 取得目前的 Windows 主題。 |
受保護的方法
名稱 | 描述 |
---|---|
CMFCBaseVisualManager::CleanUpThemes | 呼叫 CloseThemeData 中 UpdateSystemColors 取得的所有句柄。 |
CMFCBaseVisualManager::UpdateSystemColors | 呼叫 OpenThemeData 以取得繪製各種控件的句柄:視窗、工具列、按鈕等等。 |
備註
您不需要直接具現化這個類別的物件。
因為它是所有視覺管理員的基類,因此您可以直接呼叫 CMFCVisualManager::GetInstance、取得目前 Visual Manager 的指標,以及存取使用該指標的方法 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 for unchecked, 1 for checked normal,
2 用於混合正常。
bEnabled
[in]指定是否啟用複選框。
bPressed
[in]指定是否按下複選框。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 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]指定是否反白顯示下拉式方塊框線。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 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]指定下拉式方塊下拉式按鈕是否反白顯示。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 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。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 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]指定是否按下單選按鈕。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 FALSE。
CMFCBaseVisualManager::D rawStatusBarProgress
使用目前的 Windows 主題,在狀態列控件上繪製進度列 ( CMFCStatusBar 類別)。
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]狀態列的指標。 這個值會被忽略。
rectProgress
[in]pDC 座標中進度列的周框。
nProgressTotal
[in]進度總計值。
nProgressCurr
[in]目前的進度值。
clrBar
[in]開始色彩。 CMFCBaseVisualManager
會忽略這個。 衍生類別可用於色彩漸層。
clrProgressBarDest
[in]結束色彩。 CMFCBaseVisualManager
會忽略這個。 衍生類別可用於色彩漸層。
clrProgressText
[in]進度文字色彩。 CMFCBaseVisualManager
會忽略這個。 文字色彩是由 afxGlobalData.clrBtnText
定義。
bProgressText
[in]指定是否要顯示進度文字。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 FALSE。
CMFCBaseVisualManager::FillReBarPane
使用目前的 Windows 主題填滿 Rebar 控件的背景。
virtual void FillReBarPane(
CDC* pDC,
CBasePane* pBar,
CRect rectClient);
參數
pDC
[in]裝置內容的指標。
pBar
[in]窗格的指標,其背景應該繪製。
rectClient
[in]要填滿之區域的周框。
傳回值
如果已啟用主題 API,則為 TRUE;否則為 FALSE。
CMFCBaseVisualManager::GetStandardWindowsTheme
取得目前的 Windows 主題。
virtual WinXpTheme GetStandardWindowsTheme();
傳回值
目前選取的 Windows 主題色彩。 可以是下列其中一個列舉值:
WinXpTheme_None
- 未啟用主題。WinXpTheme_NonStandard
- 已選取非標準主題(表示已選取主題,但未從下列清單中選取任何主題)。WinXpTheme_Blue
- 藍色主題(露娜)。WinXpTheme_Olive
- 橄欖主題。WinXpTheme_Silver
- 銀主題。
CMFCBaseVisualManager::UpdateSystemColors
呼叫 OpenThemeData
以取得繪製各種控件的句柄:視窗、工具列、按鈕等等。
void UpdateSystemColors();
備註
僅限內部使用。