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