Condividi tramite


Classe CMFCColorButton

Le CMFCColorButton classi e CMFCColorBar Vengono usate insieme per implementare un controllo selezione colori.

Sintassi

class CMFCColorButton : public CMFCButton

Membri

Costruttori pubblici

Nome Descrizione
CMFCColorButton::CMFCColorButton Costruisce un oggetto CMFCColorButton nuovo.

Metodi pubblici

Nome Descrizione
CMFCColorButton::EnableAutomaticButton Abilita e disabilita un pulsante "automatico" posizionato sopra i pulsanti di colore normali. (Il pulsante automatico del sistema standard è etichettato Automatico.
CMFCColorButton::EnableOtherButton Abilita e disabilita un pulsante "altro" posizionato sotto i pulsanti di colore normali. (il pulsante "other" del sistema standard è etichettato Altri colori.
CMFCColorButton::GetAutomaticColor Recupera il colore automatico corrente.
CMFCColorButton::GetColor Recupera il colore di un pulsante.
CMFCColorButton::SetColor Imposta il colore di un pulsante.
CMFCColorButton::SetColorName Imposta un nome di colore.
CMFCColorButton::SetColumnsNumber Imposta il numero di colonne nella finestra di dialogo selezione colori.
CMFCColorButton::SetDocumentColors Specifica un elenco di colori specifici del documento visualizzati nella finestra di dialogo selezione colori.
CMFCColorButton::SetPalette Specifica una tavolozza di colori di visualizzazione standard.
CMFCColorButton::SizeToContent Modifica le dimensioni del controllo pulsante, a seconda del testo e delle dimensioni dell'immagine.

Metodi protetti

Nome Descrizione
CMFCColorButton::IsDrawXPTheme Indica se il pulsante colore corrente viene visualizzato nello stile di visualizzazione di Windows XP.
CMFCColorButton::OnDraw Chiamato dal framework per visualizzare un'immagine del pulsante.
CMFCColorButton::OnDrawBorder Chiamato dal framework per visualizzare il bordo del pulsante.
CMFCColorButton::OnDrawFocusRect Chiamato dal framework per visualizzare un rettangolo di stato attivo quando il pulsante ha lo stato attivo.
CMFCColorButton::OnShowColorPopup Chiamato dal framework quando la finestra di dialogo selezione colori sta per essere visualizzata.
CMFCColorButton::RebuildPalette Inizializza il m_pPalette membro dati protetto nella tavolozza specificata o nella tavolozza di sistema predefinita.
CMFCColorButton::UpdateColor Chiamato dal framework quando l'utente seleziona un colore dalla tavolozza della finestra di dialogo selezione colori.

Membri dei dati

Nome Descrizione
m_bAltColorDlg Valore booleano. Se TRUE, il framework visualizza la finestra di dialogo colore CMFCColorDialog quando si fa clic sull'altro pulsante oppure, se FALSE, la finestra di dialogo colore del sistema. Il valore predefinito è TRUE. Per altre informazioni, vedere CMFCColorButton::EnableOtherButton.
m_bAutoSetFocus Valore booleano. Se TRUE, il framework imposta lo stato attivo sul menu colore quando viene visualizzato il menu o se FALSE, non modifica lo stato attivo. Il valore predefinito è TRUE.
CMFCColorButton::m_bEnabledInCustomizeMode Indica se la modalità di personalizzazione è abilitata per il pulsante colore.
m_Color Valore COLORREF . Contiene il colore attualmente selezionato.
m_ColorAutomatic Valore COLORREF . Contiene il colore predefinito attualmente selezionato.
m_Colors Oggetto CArray di valori COLORREF . Contiene i colori attualmente disponibili.
m_lstDocColors Elenco di valori COLORREF . Contiene i colori correnti del documento.
m_nColumns Valore intero. Contiene il numero di colonne da visualizzare nella griglia dei colori in un menu di selezione colori.
m_pPalette Puntatore a un CPalette. Contiene i colori disponibili nel menu di selezione dei colori corrente.
m_pPopup Puntatore a un oggetto Classe CMFCColorPopupMenu. Menu di selezione dei colori visualizzato quando si fa clic sul pulsante colore.
m_strAutoColorText Stringa . Etichetta del pulsante "automatico" in un menu di selezione colori.
m_strDocColorsText Stringa . Etichetta del pulsante in un menu di selezione colori che visualizza i colori del documento.
m_strOtherText Stringa . Etichetta del pulsante "altro" in un menu di selezione colori.

Osservazioni:

Per impostazione predefinita, la CMFCColorButton classe si comporta come un pulsante di selezione colori che apre una finestra di dialogo selezione colori. La finestra di dialogo selezione colori contiene una matrice di pulsanti di colore di piccole dimensioni e un pulsante "altro" che visualizza una selezione colori personalizzata. (il pulsante "other" del sistema standard è etichettato Altri colori. Quando un utente seleziona un nuovo colore, l'oggetto CMFCColorButton riflette la modifica e visualizza il colore selezionato.

Creare un controllo pulsante a colori direttamente nel codice oppure usando lo strumento ClassWizard e un modello di finestra di dialogo. Se si crea direttamente un controllo pulsante colore, aggiungere una CMFCColorButton variabile all'applicazione e quindi chiamare il costruttore e Create i metodi dell'oggetto CMFCColorButton . Se si usa ClassWizard, aggiungere una CButton variabile all'applicazione e quindi modificare il tipo della variabile da CButton a CMFCColorButton.

La finestra di dialogo selezione colori ( classe CMFCColorBar) viene visualizzata dal metodo CMFCColorButton::OnShowColorPopup quando il framework chiama il OnLButtonDown gestore eventi. È possibile eseguire l'override del metodo CMFCColorButton::OnShowColorPopup per supportare la selezione dei colori personalizzata.

L'oggetto CMFCColorButton notifica al padre che un colore sta cambiando inviando un WM_COMMAND | BN_CLICKED notifica. L'elemento padre usa il metodo CMFCColorButton::GetColor per recuperare il colore corrente.

Esempio

Nell'esempio seguente viene illustrato come configurare un pulsante colore usando vari metodi nella CMFCColorButton classe . I metodi impostano il colore del pulsante colore e il relativo numero di colonne e abilitano i pulsanti automatici e gli altri pulsanti. Questo esempio fa parte dell'esempio demo della barra di stato.

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

Requisiti

Intestazione: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

Costruisce un oggetto CMFCColorButton nuovo.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

Abilitare o disabilitare il pulsante "automatico" di un controllo selezione colori e impostare il colore automatico (predefinito).

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

Parametri

lpszLabel
[in] Specifica il testo del pulsante automatico.

colorAutomatic
[in] Valore RGB che specifica il colore predefinito del pulsante automatico.

bEnable
[in] Specifica se il pulsante automatico è abilitato o disabilitato.

Osservazioni:

CMFCColorButton::EnableOtherButton

Abilitare o disabilitare il pulsante "other", visualizzato sotto i pulsanti a colori regolari.

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

Parametri

lpszLabel
[in] Specifica il testo del pulsante.

bAltColorDlg
[in] Specifica se la finestra di dialogo CMFCColorDialog o la finestra di dialogo colore di sistema viene aperta quando l'utente fa clic sul pulsante.

bEnable
[in] Specifica se il pulsante "other" è abilitato o disabilitato.

Osservazioni:

Fare clic sul pulsante "altro" per visualizzare una finestra di dialogo colore. Se il parametro bAltColorDlg è TRUE, viene visualizzata la classe CMFCColorDialog; in caso contrario, viene visualizzata la finestra di dialogo colore del sistema.

CMFCColorButton::GetAutomaticColor

Recupera il colore automatico corrente (impostazione predefinita).

COLORREF GetAutomaticColor() const;

Valore restituito

Valore RGB che rappresenta il colore automatico corrente.

Osservazioni:

Il colore automatico corrente viene impostato dal metodo CMFCColorButton::EnableAutomaticButton .

CMFCColorButton::GetColor

Recupera il colore attualmente selezionato.

COLORREF GetColor() const;

Valore restituito

Valore RGB.

Osservazioni:

CMFCColorButton::IsDrawXPTheme

Indica se il pulsante colore corrente viene visualizzato nello stile di visualizzazione di Windows XP.

BOOL IsDrawXPTheme() const;

Valore restituito

TRUE se gli stili di visualizzazione sono supportati e il pulsante colore corrente viene visualizzato nello stile di visualizzazione di Windows XP; in caso contrario, FALSE.

CMFCColorButton::m_bEnabledInCustomizeMode

Imposta un pulsante colore sulla modalità di personalizzazione.

BOOL m_bEnabledInCustomizeMode;

Osservazioni:

Se è necessario aggiungere un pulsante colore alla pagina di una finestra di dialogo di personalizzazione (o consentire all'utente di effettuare un'altra selezione di colori durante la personalizzazione), abilitare il pulsante impostando il m_bEnabledInCustomizeMode membro su TRUE. Per impostazione predefinita, questo membro è impostato su FALSE.

CMFCColorButton::OnDraw

Chiamato dal framework per eseguire il rendering di un'immagine del pulsante.

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

Parametri

pDC
[in] Punta al contesto del dispositivo usato per eseguire il rendering dell'immagine del pulsante.

rect
[in] Rettangolo che delimita il pulsante.

uiState
[in] Specifica lo stato di visualizzazione del pulsante.

Osservazioni:

Eseguire l'override di questo metodo per personalizzare il processo di rendering.

CMFCColorButton::OnDrawBorder

Chiamato dal framework per visualizzare il bordo del pulsante.

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

Parametri

pDC
[in] Punta al contesto di dispositivo utilizzato per disegnare il bordo.

rectClient
[in] Rettangolo nel contesto del dispositivo specificato dal parametro pDC che definisce i limiti del pulsante da disegnare.

uiState
[in] Specifica lo stato di visualizzazione del pulsante.

Osservazioni:

Eseguire l'override di questa funzione per personalizzare l'aspetto del bordo del pulsante colore.

CMFCColorButton::OnDrawFocusRect

Chiamato dal framework per visualizzare un rettangolo di stato attivo quando il pulsante ha lo stato attivo.

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

Parametri

pDC
[in] Punta al contesto del dispositivo usato per disegnare il rettangolo di messa a fuoco.

rectClient
[in] Rettangolo nel contesto di dispositivo specificato dal parametro pDC che definisce i limiti del pulsante.

Osservazioni:

Eseguire l'override di questo metodo per personalizzare l'aspetto del rettangolo di attivazione.

CMFCColorButton::OnShowColorPopup

Chiamato prima della visualizzazione della barra dei colori popup.

virtual void OnShowColorPopup();

Osservazioni:

CMFCColorButton::RebuildPalette

Inizializza il m_pPalette membro dati protetto nella tavolozza specificata o nella tavolozza di sistema predefinita.

void RebuildPalette(CPalette* pPal);

Parametri

pPal
[in] Puntatore a una tavolozza logica o NULL. Se NULL, viene utilizzata la tavolozza di sistema predefinita.

CMFCColorButton::SetColor

Specifica il colore del pulsante.

void SetColor(COLORREF color);

Parametri

color
[in] Valore RGB.

Osservazioni:

CMFCColorButton::SetColorName

Specifica il nome di un colore.

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

Parametri

color
[in] Valore RGB del colore.

strName
[in] Nome del colore.

Osservazioni:

L'elenco dei nomi dei colori è globale per applicazione. Di conseguenza, questo metodo trasferisce i parametri a CMFCColorBar::SetColorName.

CMFCColorButton::SetColumnsNumber

Definisce il numero di colonne visualizzate nella tabella dei colori presentati all'utente durante il processo di selezione dei colori dell'utente.

void SetColumnsNumber(int nColumns);

Parametri

nColumns
[in] Specifica il numero di colonne.

Osservazioni:

L'utente può selezionare un colore da una barra dei colori popup che visualizza una tabella di colori predefiniti. Utilizzare questo metodo per definire il numero di colonne nella tabella.

CMFCColorButton::SetDocumentColors

Specifica un set di colori e il nome del set. Il set di colori viene visualizzato utilizzando un oggetto Classe CMFCColorBar.

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

Parametri

lpszLabel
[in] Specifica l'etichetta da visualizzare con il set di colori del documento.

lstColors
[in] Riferimento a un elenco di valori RGB.

Osservazioni:

Un CMFCColorButton oggetto gestisce un elenco di valori RGB trasferiti a un oggetto classe CMFCColorBar. Quando viene visualizzata la barra dei colori, questi colori vengono visualizzati in una sezione speciale la cui etichetta è specificata dal parametro lpszLabel .

CMFCColorButton::SetPalette

Specifica i colori standard da visualizzare sulla barra dei colori popup.

void SetPalette(CPalette* pPalette);

Parametri

pPalette
[in] Puntatore a una tavolozza dei colori.

Osservazioni:

CMFCColorButton::SizeToContent

Ridimensiona il controllo pulsante per adattarne il testo e l'immagine.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

Parametri

bCalcOnly
[in] Se diverso da zero, la nuova dimensione del controllo pulsante viene calcolata ma le dimensioni effettive non vengono modificate.

Valore restituito

Oggetto CSize che specifica una nuova dimensione del controllo pulsante.

Osservazioni:

CMFCColorButton::UpdateColor

Chiamato dal framework quando l'utente seleziona un colore dalla barra dei colori visualizzata quando l'utente fa clic sul pulsante colore.

virtual void UpdateColor(COLORREF color);

Parametri

color
[in] Colore selezionato dall'utente.

Osservazioni:

La UpdateColor funzione modifica il colore del pulsante attualmente selezionato e ne notifica l'elemento padre inviando un messaggio di WM_COMMAND con una notifica standard BN_CLICKED. Utilizzare il metodo CMFCColorButton::GetColor per recuperare il colore selezionato.

Vedi anche

Grafico della gerarchia
Classi
Classe CMFCButton
Classe CMFCColorBar
CMFCColorButton::OnShowColorPopup
COLORREF
Classe CPalette
Classe CArray
Classe CList
CString