CMFCColorButton 類別
CMFCColorButton
和 CMFCColorBar 類別會一起使用來實作色彩選擇器控件。
語法
class CMFCColorButton : public CMFCButton
成員
公用建構函式
名稱 | 描述 |
---|---|
CMFCColorButton::CMFCColorButton | 建構新的 CMFCColorButton 物件。 |
公用方法
名稱 | 描述 |
---|---|
CMFCColorButton::EnableAutomaticButton | 啟用和停用位於一般色彩按鈕上方的「自動」按鈕。 (標準系統自動按鈕已加上 標籤Automatic.) |
CMFCColorButton::EnableOtherButton | 啟用和停用位於一般色彩按鈕下方的「其他」按鈕。 (標準系統[其他] 按鈕已標示 更多色彩。 |
CMFCColorButton::GetAutomaticColor | 擷取目前的自動色彩。 |
CMFCColorButton::GetColor | 擷取按鈕的色彩。 |
CMFCColorButton::SetColor | 設定按鈕的色彩。 |
CMFCColorButton::SetColorName | 設定色彩名稱。 |
CMFCColorButton::SetColumnsNumber | 設定色彩選擇器對話框上的欄數。 |
CMFCColorButton::SetDocumentColors | 指定在色彩選擇器對話框上顯示的檔案特定色彩清單。 |
CMFCColorButton::SetPalette | 指定標準顯示色彩的調色盤。 |
CMFCColorButton::SizeToContent | 根據按鈕控制件的文字和影像大小,變更按鈕控制件的大小。 |
受保護的方法
名稱 | 描述 |
---|---|
CMFCColorButton::IsDrawXPTheme | 指出目前的色彩按鈕是否以 Windows XP 的視覺樣式顯示。 |
CMFCColorButton::OnDraw | 由架構呼叫以顯示按鈕的影像。 |
CMFCColorButton::OnDrawBorder | 由架構呼叫以顯示按鈕的框線。 |
CMFCColorButton::OnDrawFocusRect | 由架構呼叫,以在按鈕具有焦點時顯示焦點矩形。 |
CMFCColorButton::OnShowColorPopup | 即將顯示色彩選擇器對話框時,由架構呼叫。 |
CMFCColorButton::RebuildPalette | 將 m_pPalette 受保護的數據成員初始化為指定的調色盤或預設系統選擇區。 |
CMFCColorButton::UpdateColor | 當使用者從色彩選擇器對話框的調色盤中選取色彩時,由架構呼叫。 |
資料成員
名稱 | 描述 |
---|---|
m_bAltColorDlg |
布爾值。 如果為 TRUE,則架構會在單擊其他按鈕時顯示 CMFCColorDialog 色彩對話方塊,如果為 FALSE,則會顯示系統色彩對話方塊。 預設值為 TRUE。 如需詳細資訊,請參閱 CMFCColorButton::EnableOtherButton。 |
m_bAutoSetFocus |
布爾值。 如果為 TRUE,則架構會在顯示功能表時設定色彩功能表上的焦點,如果為 FALSE,則不會變更焦點。 預設值為 TRUE。 |
CMFCColorButton::m_bEnabledInCustomizeMode | 指出是否啟用色彩按鈕的自定義模式。 |
m_Color |
COLORREF 值。 包含目前選取的色彩。 |
m_ColorAutomatic |
COLORREF 值。 包含目前選取的預設色彩。 |
m_Colors |
COLORREF 值的 CArray。 包含目前可用的色彩。 |
m_lstDocColors |
COLORREF 值的 CList。 包含目前的檔色彩。 |
m_nColumns |
整數。 包含色彩選取功能表中色彩方格中顯示的欄數。 |
m_pPalette |
CPalette 的指標。 包含目前色彩選取功能表中可用的色彩。 |
m_pPopup |
CMFCColorPopupMenu Class 物件的指標。 點擊色彩按鈕時顯示的色彩選取選單。 |
m_strAutoColorText |
字串。 色彩選取選單中 [自動] 按鈕的標籤。 |
m_strDocColorsText |
字串。 顯示檔色彩之色彩選取功能表中按鈕的標籤。 |
m_strOtherText |
字串。 色彩選取選單中 [其他] 按鈕的標籤。 |
備註
根據預設,類別 CMFCColorButton
的行為會作為開啟色彩選擇器對話框的按鈕。 色彩選擇器對話框包含小型色彩按鈕的數位,以及顯示自訂色彩選擇器之「其他」按鈕的數位。 (標準系統[其他] 按鈕已標示 更多色彩。當用戶選取新的色彩時, CMFCColorButton
物件會反映變更並顯示選取的色彩。
直接在程式代碼中建立色彩按鈕控件,或使用 ClassWizard 工具和對話框範本。 如果您直接建立色彩按鈕控制件,請將變數新增 CMFCColorButton
至您的應用程式,然後呼叫 物件的建構函式和 Create
方法 CMFCColorButton
。 如果您使用 ClassWizard,請將變數新增 CButton
至您的應用程式,然後將變數的類型從 CButton
變更為 CMFCColorButton
。
當架構呼叫OnLButtonDown
事件處理程式時,CMFCColorButton::OnShowColorPopup 方法會顯示色彩選擇器對話框 (CMFCColorBar 類別)。 CMFCColorButton::OnShowColorPopup 方法可以覆寫以支援自定義色彩選取。
物件 CMFCColorButton
會透過傳送WM_COMMAND來通知其父代色彩正在變更 |BN_CLICKED通知。 父系會使用 CMFCColorButton::GetColor 方法來擷取目前的色彩。
範例
下列範例示範如何使用 類別中的 CMFCColorButton
各種方法設定色彩按鈕。 方法會設定色彩按鈕的色彩及其欄數,並啟用自動和其他按鈕。 此範例是狀態列示範範例的一部分。
CMFCColorButton m_wndTextColor;
m_wndTextColor.EnableAutomaticButton(_T("Default"), afxGlobalData.clrBtnText);
m_wndTextColor.EnableOtherButton(_T("Other..."));
m_wndTextColor.SetColor((COLORREF)-1);
m_wndTextColor.SetColorName((COLORREF)-1, "Default Color");
m_wndTextColor.SetColumnsNumber(3);
需求
標頭: afxcolorbutton.h
CMFCColorButton::CMFCColorButton
建構新的 CMFCColorButton
物件。
CMFCColorButton();
CMFCColorButton::EnableAutomaticButton
啟用或停用色彩選擇器控制件的 [自動] 按鈕,並設定自動 (預設) 色彩。
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
參數
lpszLabel
[in]指定自動按鈕的文字。
colorAutomatic
[in]指定自動按鈕預設色彩的 RGB 值。
bEnable
[in]指定是否啟用或停用自動按鈕。
備註
CMFCColorButton::EnableOtherButton
啟用或停用 [其他] 按鈕,其會出現在一般色彩按鈕下方。
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
參數
lpszLabel
[in]指定按鈕的文字。
bAltColorDlg
[in]指定當使用者按鍵時,是否 開啟 CMFCColorDialog 對話框或系統色彩對話方塊。
bEnable
[in]指定是否啟用或停用 [其他] 按鈕。
備註
按兩下 [其他] 按鈕以顯示色彩對話框。 如果 bAltColorDlg 參數為 TRUE,則會顯示 CMFCColorDialog 類別,否則會顯示系統色彩對話框。
CMFCColorButton::GetAutomaticColor
擷取目前的自動 (預設) 色彩。
COLORREF GetAutomaticColor() const;
傳回值
代表目前自動色彩的 RGB 值。
備註
目前的自動色彩是由 CMFCColorButton::EnableAutomaticButton 方法所設定。
CMFCColorButton::GetColor
擷取目前選取的色彩。
COLORREF GetColor() const;
傳回值
RGB 值。
備註
CMFCColorButton::IsDrawXPTheme
指出目前的色彩按鈕是否以 Windows XP 的視覺樣式顯示。
BOOL IsDrawXPTheme() const;
傳回值
如果支援可視化樣式,且目前的色彩按鈕會顯示在 Windows XP 的視覺樣式中,則為 TRUE;否則為 FALSE。
CMFCColorButton::m_bEnabledInCustomizeMode
將色彩按鈕設定為自定義模式。
BOOL m_bEnabledInCustomizeMode;
備註
如果您需要將色彩按鈕新增至自訂對話框的頁面(或允許使用者在自定義期間進行另一個色彩選取),請將成員設定 m_bEnabledInCustomizeMode
為 TRUE 來啟用按鈕。 根據預設,這個成員會設定為 FALSE。
CMFCColorButton::OnDraw
由架構呼叫以轉譯按鈕的影像。
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
UINT uiState);
參數
pDC
[in]指向用來呈現按鈕影像的裝置內容。
rect
[in]系結按鈕的矩形。
uiState
[in]指定按鈕的視覺狀態。
備註
覆寫此方法以自定義轉譯程式。
CMFCColorButton::OnDrawBorder
由架構呼叫以顯示按鈕的框線。
virtual void OnDrawBorder(
CDC* pDC,
CRect& rectClient,
UINT uiState);
參數
pDC
[in]指向用來繪製框線的裝置內容。
rectClient
[in]裝置內容中的矩形,由 pDC 參數所指定,定義要繪製之按鈕的界限。
uiState
[in]指定按鈕的視覺狀態。
備註
覆寫此函式以自訂色彩按鈕的框線外觀。
CMFCColorButton::OnDrawFocusRect
由架構呼叫,以在按鈕具有焦點時顯示焦點矩形。
virtual void OnDrawFocusRect(
CDC* pDC,
const CRect& rectClient);
參數
pDC
[in]指向用來繪製焦點矩形的裝置內容。
rectClient
[in]pDC 參數所指定之裝置內容中的矩形,定義按鈕的界限。
備註
覆寫此方法以自定義焦點矩形的外觀。
CMFCColorButton::OnShowColorPopup
在顯示快顯色彩列之前呼叫。
virtual void OnShowColorPopup();
備註
CMFCColorButton::RebuildPalette
將 m_pPalette
受保護的數據成員初始化為指定的調色盤或預設系統選擇區。
void RebuildPalette(CPalette* pPal);
參數
pPal
[in]邏輯選擇區或 NULL 的指標。 如果為 NULL,則會使用預設系統選擇區。
CMFCColorButton::SetColor
指定按鈕的色彩。
void SetColor(COLORREF color);
參數
color
[in]RGB 值。
備註
CMFCColorButton::SetColorName
指定色彩的名稱。
static void SetColorName(
COLORREF color,
const CString& strName);
參數
color
[in]色彩的 RGB 值。
strName
[in]色彩的名稱。
備註
色彩名稱清單是每個應用程式的全域名稱。 因此,此方法會將其參數傳輸至 CMFCColorBar::SetColorName。
CMFCColorButton::SetColumnsNumber
定義在使用者色彩選取程式期間向用戶呈現之色彩表格中顯示的欄數。
void SetColumnsNumber(int nColumns);
參數
nColumns
[in]指定資料行數目。
備註
用戶可以從顯示預先定義色彩數據表的快顯色彩列中選取色彩。 使用這個方法來定義數據表中的數據行數目。
CMFCColorButton::SetDocumentColors
指定一組色彩和集合的名稱。 一組色彩是使用 CMFCColorBar 類別 對象來顯示。
void SetDocumentColors(
LPCTSTR lpszLabel,
CList<COLORREF,COLORREF>& lstColors);
參數
lpszLabel
[in]指定要與檔色彩集合一起顯示的標籤。
lstColors
[in]RGB 值清單的參考。
備註
CMFCColorButton
對象會維護傳送至 CMFCColorBar 類別物件的 RGB 值清單。 顯示色彩列時,這些色彩會顯示在由 lpszLabel 參數指定標籤的特殊區段中。
CMFCColorButton::SetPalette
指定要在快顯色彩列上顯示的標準色彩。
void SetPalette(CPalette* pPalette);
參數
pPalette
[in]調色盤的指標。
備註
CMFCColorButton::SizeToContent
調整按鈕控制件的大小以符合其文字和影像。
virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);
參數
bCalcOnly
[in]如果不是零,則會計算按鈕控件的新大小,但不會變更實際大小。
傳回值
CSize
物件,指定新的按鈕控制件大小。
備註
CMFCColorButton::UpdateColor
當使用者從使用者按下色彩按鈕時所顯示的色彩列選取色彩時,由架構呼叫。
virtual void UpdateColor(COLORREF color);
參數
color
[in]用戶選取的色彩。
備註
函 UpdateColor
式會變更目前選取的按鈕色彩,並使用BN_CLICKED標準通知傳送WM_COMMAND訊息,以通知其父系。 使用 CMFCColorButton::GetColor 方法來擷取選取的色彩。
另請參閱
階層架構圖表
類別
CMFCButton 類別
CMFCColorBar 類別
CMFCColorButton::OnShowColorPopup
COLORREF
CPalette 類別
CArray 類別
CList 類別
CString