Freigeben über


CMFCColorButton-Klasse

Die CMFCColorButton Klassen " CMFCColorBar" werden zusammen verwendet, um ein Farbauswahlsteuerelement zu implementieren.

Syntax

class CMFCColorButton : public CMFCButton

Member

Öffentliche Konstruktoren

Name Beschreibung
CMFCColorButton::CMFCColorButton Erstellt ein neues CMFCColorButton-Objekt.

Öffentliche Methoden

Name Beschreibung
CMFCColorButton::EnableAutomaticButton Aktiviert und deaktiviert eine "automatische" Schaltfläche, die über den regulären Farbschaltflächen positioniert ist. (Die automatische Standardschaltfläche des Systems ist beschriftet. Automatisch.)
CMFCColorButton::EnableOtherButton Aktiviert und deaktiviert eine "andere" Schaltfläche, die unter den regulären Farbschaltflächen positioniert ist. (Die Standardsystemschaltfläche "sonstige" ist mit der Bezeichnung versehen. Weitere Farben.)
CMFCColorButton::GetAutomaticColor Ruft die aktuelle automatische Farbe ab.
CMFCColorButton::GetColor Ruft die Farbe einer Schaltfläche ab.
CMFCColorButton::SetColor Legt die Farbe einer Schaltfläche fest.
CMFCColorButton::SetColorName Legt einen Farbnamen fest.
CMFCColorButton::SetColumnsNumber Legt die Anzahl der Spalten im Dialogfeld "Farbauswahl" fest.
CMFCColorButton::SetDocumentColors Gibt eine Liste der dokumentspezifischen Farben an, die im Dialogfeld "Farbauswahl" angezeigt werden.
CMFCColorButton::SetPalette Gibt eine Palette von Standardanzeigefarben an.
CMFCColorButton::SizeToContent Ändert die Größe des Schaltflächensteuerelements je nach Text und Bildgröße.

Geschützte Methoden

Name Beschreibung
CMFCColorButton::IsDrawXPTheme Gibt an, ob die aktuelle Farbschaltfläche im visuellen Stil von Windows XP angezeigt wird.
CMFCColorButton::OnDraw Wird vom Framework aufgerufen, um ein Bild der Schaltfläche anzuzeigen.
CMFCColorButton::OnDrawBorder Wird vom Framework aufgerufen, um den Rahmen der Schaltfläche anzuzeigen.
CMFCColorButton::OnDrawFocusRect Wird vom Framework aufgerufen, um ein Fokusrechteck anzuzeigen, wenn die Schaltfläche einen Fokus hat.
CMFCColorButton::OnShowColorPopup Wird vom Framework aufgerufen, wenn das Dialogfeld "Farbauswahl" angezeigt wird.
CMFCColorButton::RebuildPalette Initialisiert das m_pPalette geschützte Datenelement in der angegebenen Palette oder der Standardsystempalette.
CMFCColorButton::UpdateColor Wird vom Framework aufgerufen, wenn der Benutzer eine Farbe aus der Palette des Dialogfelds für die Farbauswahl auswählt.

Datenelemente

Name Beschreibung
m_bAltColorDlg Ein boolescher Wert. Wenn TRUE, zeigt das Framework das CMFCColorDialog-Farbdialog-Dialogfeld an, wenn auf die andere Schaltfläche geklickt wird, oder wenn FALSE, das Dialogfeld "Systemfarbe". Der Standardwert ist TRUE. Weitere Informationen finden Sie unter CMFCColorButton::EnableOtherButton.
m_bAutoSetFocus Ein boolescher Wert. Wenn TRUE, legt das Framework den Fokus auf das Farbmenü fest, wenn das Menü angezeigt wird, oder wenn FALSE, ändert den Fokus nicht. Der Standardwert ist TRUE.
CMFCColorButton::m_bEnabledInCustomizeMode Gibt an, ob der Anpassungsmodus für die Farbschaltfläche aktiviert ist.
m_Color EIN COLORREF-Wert . Enthält die aktuell ausgewählte Farbe.
m_ColorAutomatic EIN COLORREF-Wert . Enthält die aktuell ausgewählte Standardfarbe.
m_Colors Ein CArray von COLORREF-Werten . Enthält die derzeit verfügbaren Farben.
m_lstDocColors Eine CList von COLORREF-Werten . Enthält die aktuellen Dokumentfarben.
m_nColumns Eine ganze Zahl Enthält die Anzahl der Spalten, die im Raster der Farben in einem Farbauswahlmenü angezeigt werden sollen.
m_pPalette Ein Zeiger auf eine CPalette. Enthält die Farben, die im aktuellen Farbauswahlmenü verfügbar sind.
m_pPopup Ein Zeiger auf ein CMFCColorPopupMenu Class-Objekt . Das Farbauswahlmenü, das angezeigt wird, wenn Sie auf die Farbschaltfläche klicken.
m_strAutoColorText Eine Zeichenfolge. Die Beschriftung der Schaltfläche "Automatisch" in einem Farbauswahlmenü.
m_strDocColorsText Eine Zeichenfolge. Die Beschriftung der Schaltfläche in einem Farbauswahlmenü, in dem die Dokumentfarben angezeigt werden.
m_strOtherText Eine Zeichenfolge. Die Beschriftung der Schaltfläche "Andere" in einem Farbauswahlmenü.

Hinweise

Standardmäßig verhält sich die Klasse als Schaltfläche, mit der CMFCColorButton ein Dialogfeld für die Farbauswahl geöffnet wird. Das Dialogfeld "Farbauswahl" enthält ein Array kleiner Farbschaltflächen und eine "andere"-Schaltfläche, die eine benutzerdefinierte Farbauswahl anzeigt. (Die Standardsystemschaltfläche "sonstige" ist mit der Bezeichnung versehen. Weitere Farben.) Wenn ein Benutzer eine neue Farbe auswählt, spiegelt das Objekt die CMFCColorButton Änderung wider und zeigt die ausgewählte Farbe an.

Erstellen Sie ein Farbschaltflächen-Steuerelement entweder direkt in Ihrem Code oder mithilfe des Tools "ClassWizard " und einer Dialogfeldvorlage. Wenn Sie ein Farbschaltflächen-Steuerelement direkt erstellen, fügen Sie Ihrer Anwendung eine CMFCColorButton Variable hinzu, und rufen Sie dann den Konstruktor und Create die Methoden des CMFCColorButton Objekts auf. Wenn Sie den ClassWizard verwenden, fügen Sie ihrer Anwendung eine CButton Variable hinzu, und ändern Sie dann den Typ der Variablen von CButton " in "CMFCColorButton.

Das Dialogfeld "Farbauswahl" ( CMFCColorBar-Klasse) wird von der CMFCColorButton::OnShowColorPopup-Methode angezeigt, wenn das Framework den OnLButtonDown Ereignishandler aufruft. Die CMFCColorButton::OnShowColorPopup-Methode kann überschrieben werden, um die benutzerdefinierte Farbauswahl zu unterstützen.

Das CMFCColorButton Objekt benachrichtigt das übergeordnete Objekt, dass eine Farbe geändert wird, indem sie eine WM_COMMAND | BN_CLICKED Benachrichtigung. Das übergeordnete Element verwendet die CMFCColorButton::GetColor-Methode , um die aktuelle Farbe abzurufen.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie Sie eine Farbschaltfläche mithilfe verschiedener Methoden in der CMFCColorButton Klasse konfigurieren. Die Methoden legen die Farbe der Farbschaltfläche und die Anzahl der Spalten fest, und aktivieren Sie die schaltflächen automatisch und die anderen Schaltflächen. Dieses Beispiel ist Teil des Demobeispiels für die Statusleiste.

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

Anforderungen

Kopfzeile: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

Erstellt ein neues CMFCColorButton-Objekt.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

Aktivieren oder deaktivieren Sie die Schaltfläche "Automatisch" eines Farbauswahlsteuerelements, und legen Sie die automatische Farbe (Standardfarbe) fest.

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE);

Parameter

lpszLabel
[in] Gibt den Text der automatischen Schaltfläche an.

colorAutomatic
[in] Ein RGB-Wert, der die Standardfarbe der automatischen Schaltfläche angibt.

bEnable
[in] Gibt an, ob die automatische Schaltfläche aktiviert oder deaktiviert ist.

Hinweise

CMFCColorButton::EnableOtherButton

Aktivieren oder deaktivieren Sie die Schaltfläche "Andere", die unter regulären Farbschaltflächen angezeigt wird.

void EnableOtherButton(
    LPCTSTR lpszLabel,
    BOOL bAltColorDlg=TRUE,
    BOOL bEnable=TRUE);

Parameter

lpszLabel
[in] Gibt den Text der Schaltfläche an.

bAltColorDlg
[in] Gibt an, ob das Dialogfeld CMFCColorDialog oder das Systemfarbdialogfeld geöffnet wird, wenn der Benutzer auf die Schaltfläche klickt.

bEnable
[in] Gibt an, ob die Schaltfläche "Andere" aktiviert oder deaktiviert ist.

Hinweise

Klicken Sie auf die Schaltfläche "Andere", um ein Farbdialogfeld anzuzeigen. Wenn der Parameter "bAltColorDlg " WAHR ist, wird die CMFCColorDialog-Klasse angezeigt. Andernfalls wird das Dialogfeld "Systemfarbe" angezeigt.

CMFCColorButton::GetAutomaticColor

Ruft die aktuelle automatische Farbe (Standardfarbe) ab.

COLORREF GetAutomaticColor() const;

Rückgabewert

Ein RGB-Wert, der die aktuelle automatische Farbe darstellt.

Hinweise

Die aktuelle automatische Farbe wird von der CMFCColorButton::EnableAutomaticButton-Methode festgelegt.

CMFCColorButton::GetColor

Ruft die aktuell ausgewählte Farbe ab.

COLORREF GetColor() const;

Rückgabewert

Ein RGB-Wert.

Hinweise

CMFCColorButton::IsDrawXPTheme

Gibt an, ob die aktuelle Farbschaltfläche im visuellen Stil von Windows XP angezeigt wird.

BOOL IsDrawXPTheme() const;

Rückgabewert

TRUE, wenn visuelle Formatvorlagen unterstützt werden und die aktuelle Farbschaltfläche im visuellen Stil von Windows XP angezeigt wird; andernfalls FALSE.

CMFCColorButton::m_bEnabledInCustomizeMode

Legt eine Farbschaltfläche auf den Anpassungsmodus fest.

BOOL m_bEnabledInCustomizeMode;

Hinweise

Wenn Sie der Seite eines Anpassungsdialogfelds eine Farbschaltfläche hinzufügen müssen (oder dem Benutzer erlauben, während der Anpassung eine andere Farbauswahl vorzunehmen), aktivieren Sie die Schaltfläche, indem Sie das m_bEnabledInCustomizeMode Element auf TRUE festlegen. Standardmäßig ist dieses Element auf FALSE festgelegt.

CMFCColorButton::OnDraw

Vom Framework aufgerufen, um ein Bild der Schaltfläche zu rendern.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    UINT uiState);

Parameter

pDC
[in] Verweist auf den Gerätekontext, der zum Rendern des Bilds der Schaltfläche verwendet wird.

rect
[in] Ein Rechteck, das die Schaltfläche begrenzt.

uiState
[in] Gibt den visuellen Zustand der Schaltfläche an.

Hinweise

Überschreiben Sie diese Methode, um den Renderingprozess anzupassen.

CMFCColorButton::OnDrawBorder

Vom Framework aufgerufen, um den Rahmen der Schaltfläche anzuzeigen.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect& rectClient,
    UINT uiState);

Parameter

pDC
[in] Verweist auf den Gerätekontext, der zum Zeichnen des Rahmens verwendet wird.

rectClient
[in] Ein Rechteck im Gerätekontext, das durch den pDC-Parameter angegeben wird, der die Grenzen der zu zeichnenden Schaltfläche definiert.

uiState
[in] Gibt den visuellen Zustand der Schaltfläche an.

Hinweise

Überschreiben Sie diese Funktion, um die Rahmendarstellung der Farbschaltfläche anzupassen.

CMFCColorButton::OnDrawFocusRect

Wird vom Framework aufgerufen, um ein Fokusrechteck anzuzeigen, wenn die Schaltfläche den Fokus hat.

virtual void OnDrawFocusRect(
    CDC* pDC,
    const CRect& rectClient);

Parameter

pDC
[in] Verweist auf den Gerätekontext, der zum Zeichnen des Fokusrechtecks verwendet wird.

rectClient
[in] Ein Rechteck im Gerätekontext, der durch den pDC-Parameter angegeben wird, der die Grenzen der Schaltfläche definiert.

Hinweise

Überschreiben Sie diese Methode, um die Darstellung des Fokusrechtecks anzupassen.

CMFCColorButton::OnShowColorPopup

Wird aufgerufen, bevor die Popupfarbleiste angezeigt wird.

virtual void OnShowColorPopup();

Hinweise

CMFCColorButton::RebuildPalette

Initialisiert das m_pPalette geschützte Datenelement in der angegebenen Palette oder der Standardsystempalette.

void RebuildPalette(CPalette* pPal);

Parameter

pPal
[in] Ein Zeiger auf eine logische Palette oder NULL. Wenn NULL, wird die Standardsystempalette verwendet.

CMFCColorButton::SetColor

Gibt die Farbe der Schaltfläche an.

void SetColor(COLORREF color);

Parameter

color
[in] Ein RGB-Wert.

Hinweise

CMFCColorButton::SetColorName

Gibt den Namen einer Farbe an.

static void SetColorName(
    COLORREF color,
    const CString& strName);

Parameter

color
[in] Der RGB-Wert der Farbe.

strName
[in] Der Name der Farbe.

Hinweise

Die Liste der Farbnamen ist pro Anwendung global. Folglich überträgt diese Methode ihre Parameter an CMFCColorBar::SetColorName.

CMFCColorButton::SetColumnsNumber

Definiert die Anzahl der Spalten, die im Farbverzeichnis angezeigt werden, das dem Benutzer während des Farbauswahlprozesses angezeigt wird.

void SetColumnsNumber(int nColumns);

Parameter

nColumns
[in] Gibt die Anzahl der Spalten an.

Hinweise

Der Benutzer kann eine Farbe aus einer Popupfarbleiste auswählen, die eine Tabelle mit vordefinierten Farben anzeigt. Verwenden Sie diese Methode, um die Anzahl der Spalten in der Tabelle zu definieren.

CMFCColorButton::SetDocumentColors

Gibt einen Satz von Farben und den Namen des Satzes an. Der Farbsatz wird mit einem CMFCColorBar Class-Objekt angezeigt.

void SetDocumentColors(
    LPCTSTR lpszLabel,
    CList<COLORREF,COLORREF>& lstColors);

Parameter

lpszLabel
[in] Gibt die Beschriftung an, die mit der Gruppe von Dokumentfarben angezeigt werden soll.

lstColors
[in] Ein Verweis auf eine Liste von RGB-Werten.

Hinweise

Ein CMFCColorButton Objekt verwaltet eine Liste von RGB-Werten, die an ein CMFCColorBar Class -Objekt übertragen werden. Wenn der Farbbalken angezeigt wird, werden diese Farben in einem speziellen Abschnitt angezeigt, dessen Beschriftung durch den parameter lpszLabel angegeben wird.

CMFCColorButton::SetPalette

Gibt die Standardfarben an, die auf der Popupfarbleiste angezeigt werden sollen.

void SetPalette(CPalette* pPalette);

Parameter

pPalette
[in] Ein Zeiger auf eine Farbpalette.

Hinweise

CMFCColorButton::SizeToContent

Ändert die Größe des Schaltflächensteuerelements so, dass es dem Text und Bild entspricht.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

Parameter

bCalcOnly
[in] Ist "nonzero" festgelegt, wird die neue Größe des Schaltflächensteuerelements berechnet, die tatsächliche Größe wird jedoch nicht geändert.

Rückgabewert

Ein CSize Objekt, das die Größe eines neuen Schaltflächensteuerelements angibt.

Hinweise

CMFCColorButton::UpdateColor

Wird vom Framework aufgerufen, wenn der Benutzer eine Farbe aus der Farbleiste auswählt, die angezeigt wird, wenn der Benutzer auf die Farbschaltfläche klickt.

virtual void UpdateColor(COLORREF color);

Parameter

color
[in] Vom Benutzer ausgewählte Farbe.

Hinweise

Die UpdateColor Funktion ändert die Farbe der aktuell ausgewählten Schaltfläche und benachrichtigt das übergeordnete Element durch Senden einer WM_COMMAND Nachricht mit einer BN_CLICKED Standardbenachrichtigung. Verwenden Sie die CMFCColorButton::GetColor-Methode , um die ausgewählte Farbe abzurufen.

Siehe auch

Hierarchiediagramm
Klassen
CMFCButton-Klasse
CMFCColorBar-Klasse
CMFCColorButton::OnShowColorPopup
COLORREF
CPalette-Klasse
CArray-Klasse
CList-Klasse
CString