Condividi tramite


Classe CMFCColorMenuButton

La classe CMFCColorMenuButton supporta un comando di menu o un pulsante della barra degli strumenti che avvia una finestra di dialogo di selezione colori.

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Membri

Costruttori pubblici

Nome

Descrizione

CMFCColorMenuButton::CMFCColorMenuButton

Costruisce un oggetto CMFCColorMenuButton.

Metodi pubblici

Nome

Descrizione

CMFCColorMenuButton::EnableAutomaticButton

Abilita e disabilita un pulsante "automatico" collocato sui pulsanti standard di colore. (Il pulsante automatico del sistema standard è contrassegnato Automatico).

CMFCColorMenuButton::EnableDocumentColors

Consente la visualizzazione dei colori un documento specifico anziché i colori di sistema.

CMFCColorMenuButton::EnableOtherButton

Abilita e disabilita "un altro" pulsante posto sotto i pulsanti standard di colore. (Il sistema standard "l'altro" pulsante è contrassegnato Altri coloriÉ).

CMFCColorMenuButton::EnableTearOff

Consente di lacerare un riquadro di colore.

CMFCColorMenuButton::GetAutomaticColor

Recupera il colore automatico corrente.

CMFCColorMenuButton::GetColor

Recupera il colore corrente del pulsante.

CMFCColorMenuButton::GetColorByCmdID

Recupera il colore corrispondente a un ID di comando

CMFCColorMenuButton::OnChangeParentWnd

Chiamato dal framework quando la finestra padre.

CMFCColorMenuButton::OpenColorDialog

Aprire una finestra di dialogo di selezione di colori.

CMFCColorMenuButton::SetColor

Imposta il colore del pulsante corrente di colore.

CMFCColorMenuButton::SetColorByCmdID

Imposta il colore del pulsante tavolozza colori specificato.

CMFCColorMenuButton::SetColorName

Imposta un nuovo nome per il colore specificato.

CMFCColorMenuButton::SetColumnsNumber

Imposta il numero di colonne visualizzate da un oggetto CMFCColorBar.

Metodi protetti

Nome

Descrizione

CMFCColorMenuButton::CopyFrom

Copia un altro pulsante della barra degli strumenti al pulsante corrente.

CMFCColorMenuButton::CreatePopupMenu

Crea una finestra di dialogo di selezione colori.

CMFCColorMenuButton::IsEmptyMenuAllowed

Indica se i menu vuoti sono supportati.

CMFCColorMenuButton::OnDraw

Chiamato dal framework per visualizzare un'immagine in un pulsante.

CMFCColorMenuButton::OnDrawOnCustomizeList

Chiamato dal framework prima che un oggetto CMFCColorMenuButton visualizzato nell'elenco di una finestra di dialogo per la personalizzazione della barra degli strumenti.

Note

Per sostituire il comando di menu o un pulsante della barra degli strumenti originale con un oggetto CMFCColorMenuButton, creare l'oggetto CMFCColorMenuButton, impostare gli stili appropriati qualsiasi Classe CMFCColorBar quindi chiamare il metodo ReplaceButton della classe Classe CMFCToolBar. Se si personalizza la barra degli strumenti, chiamare il metodo CMFCToolBarsCustomizeDialog::ReplaceButton.

La finestra di dialogo di selezione colori viene creata durante l'elaborazione del gestore eventi CMFCColorMenuButton::CreatePopupMenu. Il gestore eventi notifica il frame padre con un messaggio WM_COMMAND. L'oggetto CMFCColorMenuButton invia l'id del controllo assegnato al comando di menu o sul pulsante della barra degli strumenti originale.

Esempio

Nell'esempio seguente viene illustrato come creare e configurare un pulsante tavolozza colori utilizzando i diversi metodi nella classe CMFCColorMenuButton. Nell'esempio, un oggetto CPalette innanzitutto viene creato e quindi utilizzato per costruire un oggetto con la classe CMFCColorMenuButton. L'oggetto CMFCColorMenuButton quindi configurato ai pulsanti automatici e altri e impostando il colore e il numero di colonne. Questo codice fa parte Esempio di cuscinetto di Word.

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

Gerarchia di ereditarietà

CObject

   CMFCToolBarButton

      CMFCToolBarMenuButton

         CMFCColorMenuButton

Requisiti

intestazione: afxcolormenubutton.h

Vedere anche

Riferimenti

Grafico delle gerarchie

Classe CMFCColorBar

Classe CMFCToolBar

Classe CMFCToolBarsCustomizeDialog

Classe CMFCColorButton

Altre risorse

Classi MFC