CMFCColorMenuButton-Klasse
Die CMFCColorMenuButton
Klasse unterstützt einen Menübefehl oder eine Symbolleistenschaltfläche, die ein Dialogfeld für die Farbauswahl startet.
Syntax
class CMFCColorMenuButton : public CMFCToolBarMenuButton
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CMFCColorMenuButton::CMFCColorMenuButton | Erstellt ein CMFCColorMenuButton -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CMFCColorMenuButton::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.) |
CMFCColorMenuButton::EnableDocumentColors | Aktiviert die Anzeige dokumentspezifischer Farben anstelle von Systemfarben. |
CMFCColorMenuButton::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.) |
CMFCColorMenuButton::EnableTearOff | Ermöglicht das Abreißen eines Farbbereichs. |
CMFCColorMenuButton::GetAutomaticColor | Ruft die aktuelle automatische Farbe ab. |
CMFCColorMenuButton::GetColor | Ruft die Farbe der aktuellen Schaltfläche ab. |
CMFCColorMenuButton::GetColorByCmdID | Ruft die Farbe ab, die einer angegebenen Befehls-ID entspricht. |
CMFCColorMenuButton::OnChangeParentWnd | Wird vom Framework aufgerufen, wenn sich das übergeordnete Fenster ändert. |
CMFCColorMenuButton::OpenColorDialog | Öffnet ein Dialogfeld für die Farbauswahl. |
CMFCColorMenuButton::SetColor | Legt die Farbe der aktuellen Farbschaltfläche fest. |
CMFCColorMenuButton::SetColorByCmdID | Legt die Farbe der angegebenen Menüschaltfläche für Farben fest. |
CMFCColorMenuButton::SetColorName | Legt einen neuen Namen für die angegebene Farbe fest. |
CMFCColorMenuButton::SetColumnsNumber | Legt die Anzahl der Spalten fest, die von einem CMFCColorBar Objekt angezeigt werden. |
Geschützte Methoden
Name | Beschreibung |
---|---|
CMFCColorMenuButton::CopyFrom | Kopiert eine weitere Symbolleistenschaltfläche auf die aktuelle Schaltfläche. |
CMFCColorMenuButton::CreatePopupMenuMenu | Erstellt ein Dialogfeld für die Farbauswahl. |
CMFCColorMenuButton::IsEmptyMenuAllowed | Gibt an, ob leere Menüs unterstützt werden. |
CMFCColorMenuButton::OnDraw | Vom Framework aufgerufen, um ein Bild auf einer Schaltfläche anzuzeigen. |
CMFCColorMenuButton::OnDrawOnCustomizeList | Wird vom Framework aufgerufen, bevor ein CMFCColorMenuButton Objekt in der Liste eines Symbolleistenanpassungsdialogfelds angezeigt wird. |
Hinweise
Um den ursprünglichen Menübefehl oder die Symbolleistenschaltfläche durch ein CMFCColorMenuButton
Objekt zu ersetzen, erstellen Sie das CMFCColorMenuButton
Objekt, legen Sie alle entsprechenden CMFCColorBar-Klassenstile fest, und rufen Sie dann die ReplaceButton
Methode der CMFCToolBar-Klasse auf. Wenn Sie eine Symbolleiste anpassen, rufen Sie die CMFCToolBarsCustomizeDialog::ReplaceButton-Methode auf.
Das Dialogfeld "Farbauswahl" wird während der Verarbeitung des CMFCColorMenuButton::CreatePopupMenuMenu-Ereignishandlers erstellt. Der Ereignishandler benachrichtigt den übergeordneten Frame mit einer WM_COMMAND Nachricht. Das CMFCColorMenuButton
Objekt sendet die Steuerelement-ID, die dem ursprünglichen Menübefehl oder der Symbolleistenschaltfläche zugewiesen ist.
Beispiel
Im folgenden Beispiel wird das Erstellen und Konfigurieren einer Farbmenüschaltfläche mithilfe verschiedener Methoden in der CMFCColorMenuButton
Klasse veranschaulicht. Im Beispiel wird zuerst ein CPalette
Objekt erstellt und dann zum Erstellen eines Objekts der CMFCColorMenuButton
Klasse verwendet. Das CMFCColorMenuButton
Objekt wird dann konfiguriert, indem die automatischen und anderen Schaltflächen aktiviert und die Farbe und die Anzahl der Spalten festgelegt werden. Dieser Code ist Teil des Word Pad-Beispiels.
CPalette m_palColorPicker; // Palette for color picker
int m_nNumColours;
CMFCColorMenuButton *CFormatBar::CreateColorButton()
{
if (m_palColorPicker.GetSafeHandle() == NULL)
{
m_nNumColours = sizeof(crColours) / sizeof(ColourTableEntry);
ASSERT(m_nNumColours <= MAX_COLOURS);
if (m_nNumColours > MAX_COLOURS)
m_nNumColours = MAX_COLOURS;
// Create the palette
struct
{
LOGPALETTE LogPalette;
PALETTEENTRY PalEntry[MAX_COLOURS];
} pal;
LOGPALETTE *pLogPalette = (LOGPALETTE*)&pal;
pLogPalette->palVersion = 0x300;
pLogPalette->palNumEntries = (WORD)m_nNumColours;
for (int i = 0; i < m_nNumColours; i++)
{
pLogPalette->palPalEntry[i].peRed = GetRValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peGreen = GetGValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peBlue = GetBValue(crColours[i].crColour);
pLogPalette->palPalEntry[i].peFlags = 0;
}
m_palColorPicker.CreatePalette(pLogPalette);
}
CMFCColorMenuButton *pColorButton = new CMFCColorMenuButton(ID_CHAR_COLOR, _T("Text Color..."), &m_palColorPicker);
pColorButton->EnableAutomaticButton(_T("Automatic"), RGB(0, 0, 0));
pColorButton->EnableOtherButton(_T("More Colors..."));
pColorButton->EnableDocumentColors(_T("Document's Colors"));
pColorButton->EnableTearOff(ID_COLOR_TEAROFF, 5, 2);
pColorButton->SetColumnsNumber(8);
pColorButton->SetColor(RGB(0, 0, 255));
// Initialize color names:
for (int i = 0; i < m_nNumColours; i++)
{
CMFCColorMenuButton::SetColorName(crColours[i].crColour, crColours[i].szName);
}
return pColorButton;
}
Vererbungshierarchie
Anforderungen
Kopfzeile: afxcolormenubutton.h
CMFCColorMenuButton::CMFCColorMenuButton
Erstellt ein CMFCColorMenuButton
-Objekt.
CMFCColorMenuButton();
CMFCColorMenuButton(
UINT uiCmdID,
LPCTSTR lpszText,
CPalette* pPalette=NULL);
Parameter
uiCmdID
[in] Eine Befehls-ID für Schaltflächen.
lpszText
[in] Der Schaltflächentext.
pPalette
[in] Ein Zeiger auf die Farbpalette der Schaltfläche.
Rückgabewert
Bemerkungen
Der erste Konstruktor ist der Standardkonstruktor. Die aktuelle Farbe und die automatische Farbe des Objekts werden in Schwarz initialisiert (RGB(0, 0, 0)).
Der zweite Konstruktor initialisiert die Schaltfläche auf die Farbe, die der angegebenen Befehls-ID entspricht.
CMFCColorMenuButton::CopyFrom
Kopiert ein CMFCToolBarMenuButton Class-abgeleitetes Objekt in ein anderes.
virtual void CopyFrom(const CMFCToolBarButton& src);
Parameter
src
[in] Schaltfläche "Quelle", die kopiert werden soll.
Hinweise
Überschreiben Sie diese Methode, um Objekte zu kopieren, die vom CMFCColorMenuButton
Objekt abgeleitet sind.
CMFCColorMenuButton::CreatePopupMenuMenu
Erstellt ein Dialogfeld für die Farbauswahl.
virtual CMFCPopupMenu* CreatePopupMenu();
Rückgabewert
Ein Objekt, das ein Dialogfeld für die Farbauswahl darstellt.
Hinweise
Diese Methode wird vom Framework aufgerufen, wenn der Benutzer eine Farbmenüschaltfläche drückt.
CMFCColorMenuButton::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.)
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
Parameter
lpszLabel
[in] Gibt den Schaltflächentext an, der angezeigt wird, wenn die Schaltfläche automatisch wird.
colorAutomatic
[in] Gibt eine neue automatische Farbe an.
bEnable
[in] Gibt an, ob die Schaltfläche automatisch ist oder nicht.
Hinweise
Die automatische Schaltfläche wendet die aktuelle Standardfarbe an.
CMFCColorMenuButton::EnableDocumentColors
Aktiviert die Anzeige dokumentspezifischer Farben anstelle von Systemfarben.
void EnableDocumentColors(
LPCTSTR lpszLabel,
BOOL bEnable=TRUE);
Parameter
lpszLabel
[in] Gibt den Schaltflächentext an.
bEnable
[in] TRUE, um dokumentspezifische Farben oder FALSE anzuzeigen, um Systemfarben anzuzeigen.
Hinweise
Verwenden Sie diese Methode, um die aktuellen Dokumentfarben oder die Systempalettenfarben anzuzeigen, wenn der Benutzer auf eine Farbmenüschaltfläche klickt.
CMFCColorMenuButton::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.)
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
Parameter
lpszLabel
[in] Gibt den Schaltflächentext an.
bAltColorDlg
[in] Geben Sie WAHR an, um das CMFCColorDialog
Dialogfeld anzuzeigen, oder FALSE, um das Standarddialogfeld für die Systemfarbe anzuzeigen.
bEnable
[in] Geben Sie WAHR an, um die Schaltfläche "andere" anzuzeigen; andernfalls FALSE. Der Standardwert ist TRUE.
Hinweise
CMFCColorMenuButton::EnableTearOff
Ermöglicht das Abreißen eines Farbbereichs.
void EnableTearOff(
UINT uiID,
int nVertDockColumns=-1,
int nHorzDockRows=-1);
Parameter
uiID
[in] Gibt die ID für den Abbruchbereich an.
nVertDockColumns
[in] Gibt die Anzahl der Spalten im vertikal angedockten Farbbereich an, während der Zustand "Abreißen" angezeigt wird.
nHorzDockRows
[in] Gibt die Anzahl der Zeilen für den horizontal angedockten Farbbereich im Abbruchzustand an.
Hinweise
Rufen Sie diese Methode auf, um das Feature "Abreißen" für den Farbbereich zu aktivieren, der angezeigt wird, wenn die CMFCColorMenuButton
Schaltfläche gedrückt wird.
CMFCColorMenuButton::GetAutomaticColor
Ruft die aktuelle automatische Farbe ab.
COLORREF GetAutomaticColor() const;
Rückgabewert
Ein RGB-Farbwert, der die aktuelle automatische Farbe darstellt.
Hinweise
Rufen Sie diese Methode auf, um die automatische Farbe abzurufen, die von CMFCColorMenuButton::EnableAutomaticButton festgelegt wird.
CMFCColorMenuButton::GetColor
Ruft die Farbe der aktuellen Schaltfläche ab.
COLORREF GetColor() const;
Rückgabewert
Die Farbe der Schaltfläche.
Hinweise
CMFCColorMenuButton::GetColorByCmdID
Ruft die Farbe ab, die einer angegebenen Befehls-ID entspricht.
static COLORREF GetColorByCmdID(UINT uiCmdID);
Parameter
uiCmdID
[in] Eine Befehls-ID.
Rückgabewert
Die Farbe, die der angegebenen Befehls-ID entspricht.
Hinweise
Verwenden Sie diese Methode, wenn Sie über mehrere Farbschaltflächen in einer Anwendung verfügen. Wenn der Benutzer auf eine Farbschaltfläche klickt, sendet die Schaltfläche die Befehls-ID in einer WM_COMMAND Nachricht an das übergeordnete Element. Die GetColorByCmdID
Methode verwendet die Befehls-ID, um die entsprechende Farbe abzurufen.
CMFCColorMenuButton::IsEmptyMenuAllowed
Gibt an, ob leere Menüs unterstützt werden.
virtual BOOL IsEmptyMenuAllowed() const;
Rückgabewert
Nonzero, wenn leere Menüs zulässig sind; andernfalls 0.
Hinweise
Leere Menüs werden standardmäßig unterstützt. Überschreiben Sie diese Methode, um dieses Verhalten in abgeleiteter Klasse zu ändern.
CMFCColorMenuButton::OnChangeParentWnd
Wird vom Framework aufgerufen, wenn sich das übergeordnete Fenster ändert.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Parameter
pWndParent
[in] Ein Zeiger auf das neue übergeordnete Fenster.
Hinweise
CMFCColorMenuButton::OnDraw
Vom Framework aufgerufen, um ein Bild auf einer Schaltfläche anzuzeigen.
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz=TRUE,
BOOL bCustomizeMode=FALSE,
BOOL bHighlight=FALSE,
BOOL bDrawBorder=TRUE,
BOOL bGrayDisabledButtons=TRUE);
Parameter
pDC
[in] Ein Zeiger auf einen Gerätekontext.
rect
[in] Ein Rechteck, das den Zuschnitt des Bereichs begrenzt.
pImages
[in] Verweist auf eine Liste von Symbolleistenbildern.
bHorz
[in] TRUE, um anzugeben, dass sich die Symbolleiste in einem horizontal angedockten Zustand befindet. andernfalls FALSE. Der Standardwert ist TRUE.
bCustomizeMode
[in] TRUE, um anzugeben, dass sich die Anwendung im Anpassungsmodus befindet; andernfalls FALSE. Der Standardwert lautet FALSE.
bHighlight
[in] TRUE, um anzugeben, dass die Schaltfläche hervorgehoben ist; andernfalls FALSE. Der Standardwert lautet FALSE.
bDrawBorder
[in] TRUE, um anzugeben, dass der Rahmen der Schaltfläche angezeigt wird; andernfalls FALSE. Der Standardwert ist TRUE.
bGrayDisabledButtons
[in] TRUE, um anzugeben, dass deaktivierte Schaltflächen abgeblendet (abgeblendet) sind; andernfalls FALSE. Der Standardwert ist TRUE.
Hinweise
CMFCColorMenuButton::OnDrawOnCustomizeList
Wird vom Framework aufgerufen, bevor ein CMFCColorMenuButton
Objekt in der Liste eines Symbolleistenanpassungsdialogfelds angezeigt wird.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Parameter
pDC
[in] Ein Zeiger auf einen Gerätekontext.
rect
[in] Ein Rechteck, das die zu zeichnende Schaltfläche begrenzt.
bSelected
[in] TRUE gibt an, dass sich die Schaltfläche im ausgewählten Zustand befindet. andernfalls FALSE.
Rückgabewert
Die Breite der Schaltfläche.
Hinweise
Diese Methode wird vom Framework aufgerufen, wenn ein CMFCColorMenuButton
Objekt während des Anpassungsprozesses der Symbolleiste im Listenfeld angezeigt wird.
CMFCColorMenuButton::OpenColorDialog
Öffnet ein Dialogfeld für die Farbauswahl.
virtual BOOL OpenColorDialog(
const COLORREF colorDefault,
COLORREF& colorRes);
Parameter
colorDefault
[in] Die Standardfarbe, die im Dialogfeld "Farbe" ausgewählt ist.
colorRes
[out] Gibt die Farbe zurück, die der Benutzer im Dialogfeld "Farbe" auswählt.
Rückgabewert
Nonzero, wenn der Benutzer eine neue Farbe auswählt; andernfalls 0.
Hinweise
Wenn auf die Menüschaltfläche geklickt wird, rufen Sie diese Methode auf, um ein Farbdialogfeld zu öffnen. Wenn der Rückgabewert ungleich Null ist, wird die farbe, die der Benutzer auswählt, im colorRes-Parameter gespeichert. Verwenden Sie die CMFCColorMenuButton::EnableOtherButton-Methode , um zwischen dem Standardfarbdialogfeld und dem Dialogfeld CMFCColorDialog-Klasse zu wechseln.
CMFCColorMenuButton::SetColor
Legt die Farbe der aktuellen Farbschaltfläche fest.
virtual void SetColor(
COLORREF clr,
BOOL bNotify=TRUE);
Parameter
clr
[in] Ein RGB-Farbwert.
bNotify
[in] TRUE, um die Clr-Parameterfarbe auf eine beliebige zugeordnete Menüschaltfläche oder Symbolleistenschaltfläche anzuwenden, andernfalls FALSE.
Hinweise
Rufen Sie diese Methode auf, um die Farbe der aktuellen Farbschaltfläche zu ändern. Wenn der Parameter "bNotify " nicht null ist, wird die Farbe der entsprechenden Schaltfläche in einem beliebigen zugeordneten Popupmenü oder einer symbolleiste in die durch den Clr-Parameter angegebene Farbe geändert.
CMFCColorMenuButton::SetColorByCmdID
Legt die Farbe der angegebenen Menüschaltfläche für Farben fest.
static void SetColorByCmdID(
UINT uiCmdID,
COLORREF color);
Parameter
uiCmdID
[in] Die Ressourcen-ID einer Farbmenüschaltfläche.
color
[in] Ein RGB-Farbwert.
CMFCColorMenuButton::SetColorName
Legt einen neuen Namen für die angegebene Farbe fest.
static void SetColorName(
COLORREF color,
const CString& strName);
Parameter
color
[in] Der RGB-Wert der Farbe, deren Name geändert wird.
strName
[in] Der neue Name der Farbe.
Hinweise
CMFCColorMenuButton::SetColumnsNumber
Legt die Anzahl der Spalten fest, die in einem Farbauswahlsteuerelement angezeigt werden sollen ( CMFCColorBar -Objekt).
void SetColumnsNumber(int nColumns);
Parameter
nColumns
[in] Die Anzahl der anzuzeigenden Spalten.
Hinweise
Weitere Informationen
Hierarchiediagramm
Klassen
CMFCColorBar-Klasse
CMFCToolBar-Klasse
CMFCToolBarsCustomizeDialog-Klasse
CMFCColorButton-Klasse