共用方式為


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 呼叫 CloseThemeDataUpdateSystemColors取得的所有句柄。
CMFCBaseVisualManager::UpdateSystemColors 呼叫 OpenThemeData 以取得繪製各種控件的句柄:視窗、工具列、按鈕等等。

備註

您不需要直接具現化這個類別的物件。

因為它是所有視覺管理員的基類,因此您可以直接呼叫 CMFCVisualManager::GetInstance、取得目前 Visual Manager 的指標,以及存取使用該指標的方法 CMFCBaseVisualManager 。 不過,如果您必須使用目前的 Windows 主題來顯示控件,最好是使用 CMFCVisualManagerWindows 介面。

繼承階層架構

CObject

CMFCBaseVisualManager

需求

標頭: afxvisualmanager.h

CMFCBaseVisualManager::CleanUpThemes

呼叫 CloseThemeDataUpdateSystemColors取得的所有句柄。

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();

備註

僅限內部使用。

另請參閱

階層架構圖表
類別