CMFCColorButton – třída
Třídy CMFCColorButton
TŘÍDY CMFCColorBar se používají společně k implementaci ovládacího prvku pro výběr barvy.
Syntaxe
class CMFCColorButton : public CMFCButton
Členové
Veřejné konstruktory
Jméno | popis |
---|---|
CMFCColorButton::CMFCColorButton | Vytvoří nový CMFCColorButton objekt. |
Veřejné metody
Jméno | popis |
---|---|
CMFCColorButton::EnableAutomaticButton | Povolí a zakáže "automatické" tlačítko umístěné nad běžnými barevnými tlačítky. (Standardní automatické tlačítko systému je označené Automaticky.) |
CMFCColorButton::EnableOtherButton | Povolí a zakáže tlačítko "jiné", které je umístěné pod běžnými tlačítky barev. (Standardní systém "jiné" tlačítko je označeno Další barvy.) |
CMFCColorButton::GetAutomaticColor | Načte aktuální automatickou barvu. |
CMFCColorButton::GetColor | Načte barvu tlačítka. |
CMFCColorButton::SetColor | Nastaví barvu tlačítka. |
CMFCColorButton::SetColorName | Nastaví název barvy. |
CMFCColorButton::SetColumnsNumber | Nastaví počet sloupců v dialogovém okně pro výběr barvy. |
CMFCColorButton::SetDocumentColors | Určuje seznam barev specifických pro dokument, které se zobrazí v dialogovém okně pro výběr barev. |
CMFCColorButton::SetPalette | Určuje paletu standardních barev zobrazení. |
CMFCColorButton::SizeToContent | Změní velikost ovládacího prvku tlačítka v závislosti na jeho textu a velikosti obrázku. |
Chráněné metody
Jméno | popis |
---|---|
CMFCColorButton::IsDrawXPTheme | Určuje, zda je aktuální barevné tlačítko zobrazeno ve vizuálním stylu systému Windows XP. |
CMFCColorButton::OnDraw | Volá se rozhraním pro zobrazení obrázku tlačítka. |
CMFCColorButton::OnDrawBorder | Volá se rozhraním, aby se zobrazilo ohraničení tlačítka. |
CMFCColorButton::OnDrawFocusRect | Zavolá se rozhraním pro zobrazení obdélníku fokusu, když má tlačítko fokus. |
CMFCColorButton::OnShowColorPopup | Volá se rozhraním, když se bude zobrazovat dialogové okno pro výběr barev. |
CMFCColorButton::RebuildPalette | Inicializuje m_pPalette chráněný datový člen na zadanou paletu nebo výchozí systémovou paletu. |
CMFCColorButton::UpdateColor | Volá se podle architektury, když uživatel vybere barvu z palety dialogového okna pro výběr barvy. |
Datové členy
Jméno | popis |
---|---|
m_bAltColorDlg |
Logická hodnota. Pokud je true, rozhraní zobrazí CMFCColorDialog barevné dialogové okno při kliknutí na druhé tlačítko nebo pokud NEPRAVDA, systémové barvy dialogové okno. Výchozí hodnota je PRAVDA. Další informace naleznete v tématu CMFCColorButton::EnableOtherButton. |
m_bAutoSetFocus |
Logická hodnota. Pokud je hodnota TRUE, architektura nastaví fokus v nabídce barev, když se nabídka zobrazí, nebo pokud NEPRAVDA fokus nezmění. Výchozí hodnota je PRAVDA. |
CMFCColorButton::m_bEnabledInCustomizeMode | Určuje, jestli je pro tlačítko barvy povolený režim přizpůsobení. |
m_Color |
Hodnota COLORREF. Obsahuje aktuálně vybranou barvu. |
m_ColorAutomatic |
Hodnota COLORREF. Obsahuje aktuálně vybranou výchozí barvu. |
m_Colors |
A CArray of COLORREF values. Obsahuje aktuálně dostupné barvy. |
m_lstDocColors |
A CList of COLORREF values. Obsahuje aktuální barvy dokumentu. |
m_nColumns |
Celé číslo. Obsahuje počet sloupců, které se mají zobrazit v mřížce barev v nabídce výběru barev. |
m_pPalette |
Ukazatel na CPalette. Obsahuje barvy, které jsou k dispozici v aktuální nabídce výběru barev. |
m_pPopup |
Ukazatel na OBJEKT CMFCColorPopupMenu Class . Nabídka výběru barev, která se zobrazí po kliknutí na tlačítko barvy. |
m_strAutoColorText |
Řetězec. Popisek tlačítka "automaticky" v nabídce výběru barev. |
m_strDocColorsText |
Řetězec. Popisek tlačítka v nabídce výběru barev, která zobrazuje barvy dokumentu. |
m_strOtherText |
Řetězec. Popisek tlačítka "jiný" v nabídce výběru barev. |
Poznámky
Ve výchozím nastavení se CMFCColorButton
třída chová jako tlačítko, které otevře dialogové okno pro výběr barvy. Dialogové okno pro výběr barvy obsahuje pole malých barevných tlačítek a tlačítko "jiné", které zobrazuje vlastní výběr barvy. (Standardní systém "jiné" tlačítko je označeno Další barvy.) Když uživatel vybere novou barvu, CMFCColorButton
objekt odráží změnu a zobrazí vybranou barvu.
Vytvořte ovládací prvek barevného tlačítka buď přímo v kódu, nebo pomocí nástroje ClassWizard a šablony dialogového okna. Pokud vytvoříte ovládací prvek barevného tlačítka přímo, přidejte do aplikace proměnnou CMFCColorButton
a pak volejte konstruktor a Create
metody objektu CMFCColorButton
. Pokud použijete ClassWizard, přidejte do aplikace proměnnou CButton
a potom změňte typ proměnné z CButton
na CMFCColorButton
.
Dialogové okno pro výběr barev ( CMFCColorBar Třída) je zobrazen CMFCColorButton::OnShowColorPopup metoda při volání rozhraní obslužné rutiny OnLButtonDown
události. CMFCColorButton::OnShowColorPopup metoda lze přepsat pro podporu vlastního výběru barev.
Objekt CMFCColorButton
oznámí nadřazené objektu, že se barva mění odesláním WM_COMMAND | BN_CLICKED oznámení. Nadřazený objekt používá CMFCColorButton::GetColor metoda načtení aktuální barvy.
Příklad
Následující příklad ukazuje, jak nakonfigurovat barevné tlačítko pomocí různých metod ve CMFCColorButton
třídě. Metody nastaví barvu barevného tlačítka a jeho počet sloupců a povolí automatické a ostatní tlačítka. Tento příklad je součástí ukázky stavového řádku.
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);
Požadavky
Hlavička: afxcolorbutton.h
CMFCColorButton::CMFCColorButton
Vytvoří nový CMFCColorButton
objekt.
CMFCColorButton();
CMFCColorButton::EnableAutomaticButton
Povolte nebo zakažte tlačítko automatického ovládacího prvku pro výběr barvy a nastavte automatickou (výchozí) barvu.
void EnableAutomaticButton(
LPCTSTR lpszLabel,
COLORREF colorAutomatic,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[v] Určuje text automatického tlačítka.
colorAutomatic
[v] Hodnota RGB, která určuje výchozí barvu automatického tlačítka.
bEnable
[v] Určuje, jestli je automatické tlačítko povolené nebo zakázané.
Poznámky
CMFCColorButton::EnableOtherButton
Povolte nebo zakažte tlačítko "jiné", které se zobrazuje pod běžnými tlačítky barev.
void EnableOtherButton(
LPCTSTR lpszLabel,
BOOL bAltColorDlg=TRUE,
BOOL bEnable=TRUE);
Parametry
lpszLabel
[v] Určuje text tlačítka.
bAltColorDlg
[v] Určuje, zda se otevře dialogové okno CMFCColorDialog nebo dialogové okno barvy systému, když uživatel klikne na tlačítko.
bEnable
[v] Určuje, jestli je povolené nebo zakázané tlačítko "jiné".
Poznámky
Kliknutím na tlačítko "jiný" zobrazíte dialogové okno barvy. Pokud je parametr bAltColorDlg TRUE, zobrazí se CMFCColorDialog – třída. V opačném případě se zobrazí dialogové okno barvy systému.
CMFCColorButton::GetAutomaticColor
Načte aktuální automatickou (výchozí) barvu.
COLORREF GetAutomaticColor() const;
Vrácená hodnota
Hodnota RGB představující aktuální automatickou barvu.
Poznámky
Aktuální automatická barva je nastavena CMFCColorButton::EnableAutomaticButton metoda.
CMFCColorButton::GetColor
Načte aktuálně vybranou barvu.
COLORREF GetColor() const;
Vrácená hodnota
Hodnota RGB.
Poznámky
CMFCColorButton::IsDrawXPTheme
Určuje, zda je aktuální barevné tlačítko zobrazeno ve vizuálním stylu systému Windows XP.
BOOL IsDrawXPTheme() const;
Vrácená hodnota
TRUE pokud jsou podporovány vizuální styly a aktuální barevné tlačítko je zobrazeno ve vizuálním stylu systému Windows XP; jinak NEPRAVDA.
CMFCColorButton::m_bEnabledInCustomizeMode
Nastaví barevné tlačítko na režim přizpůsobení.
BOOL m_bEnabledInCustomizeMode;
Poznámky
Pokud potřebujete přidat barevné tlačítko na stránku dialogového okna pro přizpůsobení (nebo povolit uživateli, aby během přizpůsobení udělal další výběr barvy), povolte tlačítko nastavením člena m_bEnabledInCustomizeMode
na HODNOTU TRUE. Ve výchozím nastavení je tento člen nastaven na HODNOTU FALSE.
CMFCColorButton::OnDraw
Zavolá se rozhraním pro vykreslení obrázku tlačítka.
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
UINT uiState);
Parametry
Pdc
[v] Odkazuje na kontext zařízení, který se používá k vykreslení obrázku tlačítka.
Rect
[v] Obdélník, který ohraničuje tlačítko.
uiState
[v] Určuje vizuální stav tlačítka.
Poznámky
Tuto metodu přepište tak, aby se přizpůsobil proces vykreslování.
CMFCColorButton::OnDrawBorder
Volá se rozhraním, aby se zobrazilo ohraničení tlačítka.
virtual void OnDrawBorder(
CDC* pDC,
CRect& rectClient,
UINT uiState);
Parametry
Pdc
[v] Odkazuje na kontext zařízení použitý k vykreslení ohraničení.
rectClient
[v] Obdélník v kontextu zařízení, který je určen parametrem pDC , který definuje hranice tlačítka, které se mají nakreslit.
uiState
[v] Určuje vizuální stav tlačítka.
Poznámky
Přepište tuto funkci tak, aby přizpůsobila vzhled ohraničení barevného tlačítka.
CMFCColorButton::OnDrawFocusRect
Zavolá se rozhraním pro zobrazení obdélníku fokusu, když má tlačítko fokus.
virtual void OnDrawFocusRect(
CDC* pDC,
const CRect& rectClient);
Parametry
Pdc
[v] Odkazuje na kontext zařízení použitý k vykreslení obdélníku fokusu.
rectClient
[v] Obdélník v kontextu zařízení určený parametrem pDC , který definuje hranice tlačítka.
Poznámky
Přepsat tuto metodu přizpůsobení vzhledu obdélníku fokusu.
CMFCColorButton::OnShowColorPopup
Volá se před zobrazením automaticky otevíraného panelu barev.
virtual void OnShowColorPopup();
Poznámky
CMFCColorButton::RebuildPalette
Inicializuje m_pPalette
chráněný datový člen na zadanou paletu nebo výchozí systémovou paletu.
void RebuildPalette(CPalette* pPal);
Parametry
pPal
[v] Ukazatel na logickou paletu nebo hodnotu NULL. Pokud je hodnota NULL, použije se výchozí systémová paleta.
CMFCColorButton::SetColor
Určuje barvu tlačítka.
void SetColor(COLORREF color);
Parametry
Barev
[v] Hodnota RGB.
Poznámky
CMFCColorButton::SetColorName
Určuje název barvy.
static void SetColorName(
COLORREF color,
const CString& strName);
Parametry
Barev
[v] Hodnota RGB barvy.
strName
[v] Název barvy.
Poznámky
Seznam názvů barev je globální pro každou aplikaci. V důsledku toho tato metoda přenese své parametry do CMFCColorBar::SetColorName.
CMFCColorButton::SetColumnsNumber
Definuje počet sloupců zobrazených v tabulce barev, které se uživateli zobrazí během procesu výběru barev uživatele.
void SetColumnsNumber(int nColumns);
Parametry
nSloupce
[v] Určuje počet sloupců.
Poznámky
Uživatel může vybrat barvu z automaticky otevíraného panelu barev, který zobrazuje tabulku předdefinovaných barev. Tato metoda slouží k definování počtu sloupců v tabulce.
CMFCColorButton::SetDocumentColors
Určuje sadu barev a název sady. Sada barev se zobrazí pomocí CMFCColorBar Class objektu.
void SetDocumentColors(
LPCTSTR lpszLabel,
CList<COLORREF,COLORREF>& lstColors);
Parametry
lpszLabel
[v] Určuje popisek, který se má zobrazit pomocí sady barev dokumentu.
lstColors
[v] Odkaz na seznam hodnot RGB.
Poznámky
Objekt CMFCColorButton
udržuje seznam hodnot RGB, které jsou přeneseny do OBJEKTU CMFCColorBar Class . Při zobrazení barevného pruhu se tyto barvy zobrazí ve speciální části, jejíž popisek je určen parametrem lpszLabel .
CMFCColorButton::SetPalette
Určuje standardní barvy, které se mají zobrazit na automaticky otevíraném panelu barev.
void SetPalette(CPalette* pPalette);
Parametry
pPalette
[v] Ukazatel na paletu barev.
Poznámky
CMFCColorButton::SizeToContent
Změní velikost ovládacího prvku tlačítka tak, aby odpovídal textu a obrázku.
virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);
Parametry
bCalcOnly
[v] Pokud není nula, vypočítá se nová velikost ovládacího prvku tlačítka, ale skutečná velikost se nezmění.
Vrácená hodnota
Objekt CSize
, který určuje novou velikost ovládacího prvku tlačítka.
Poznámky
CMFCColorButton::UpdateColor
Volá se podle architektury, když uživatel vybere barvu z barevného pruhu, který se zobrazí, když uživatel klikne na tlačítko barvy.
virtual void UpdateColor(COLORREF color);
Parametry
Barev
[v] Barva vybraná uživatelem
Poznámky
Funkce UpdateColor
změní barvu aktuálně vybraného tlačítka a upozorní její nadřazenou zprávu odesláním WM_COMMAND zprávy se standardním oznámením BN_CLICKED. Pomocí CMFCColorButton::GetColor metoda načíst vybranou barvu.
Viz také
Graf hierarchie
Třídy
CMFCButton – třída
CMFCColorBar – třída
CMFCColorButton::OnShowColorPopup
COLORREF
CPalette – třída
CArray – třída
CList – třída
Cstring