Partager via


CMFCColorMenuButton, classe

La classe d' CMFCColorMenuButton prend en charge une commande de menu ou un bouton de barre d'outils qui démarre une boîte de dialogue du sélecteur de couleurs.

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Membres

Constructeurs publics

Nom

Description

CMFCColorMenuButton::CMFCColorMenuButton

Construit un objet CMFCColorMenuButton.

Méthodes publiques

Nom

Description

CMFCColorMenuButton::EnableAutomaticButton

Active et désactive un bouton « automatique » qui est positionnée au-dessus de les boutons normaux de couleur. (Le bouton automatique du système standard est étiqueté Automatique.)

CMFCColorMenuButton::EnableDocumentColors

Active l'affichage de couleurs de document spécifique au lieu des couleurs système.

CMFCColorMenuButton::EnableOtherButton

Active et désactive un « autre » bouton qui est positionné sous les boutons normaux de couleur. (Le système standard « autre » bouton est étiqueté Plus les couleurs….)

CMFCColorMenuButton::EnableTearOff

Active la capacité d'arracher un volet de couleur.

CMFCColorMenuButton::GetAutomaticColor

Extrait la couleur automatique actuelle.

CMFCColorMenuButton::GetColor

Extrait la couleur du bouton actuel.

CMFCColorMenuButton::GetColorByCmdID

Extrait la couleur qui correspond à un ID de commande spécifiée

CMFCColorMenuButton::OnChangeParentWnd

Appelé par l'infrastructure lorsque la fenêtre parente change.

CMFCColorMenuButton::OpenColorDialog

Ouvre une boîte de dialogue de sélection de couleurs.

CMFCColorMenuButton::SetColor

Définit la couleur du bouton en cours de couleur.

CMFCColorMenuButton::SetColorByCmdID

Définit la couleur du bouton de menu spécifié de couleur.

CMFCColorMenuButton::SetColorName

Définit un nouveau nom pour la couleur spécifiée.

CMFCColorMenuButton::SetColumnsNumber

Définit le nombre de colonnes affichées par un objet d' CMFCColorBar .

Méthodes protégées

Nom

Description

CMFCColorMenuButton::CopyFrom

Copie un autre bouton de barre d'outils sur le bouton actuel.

CMFCColorMenuButton::CreatePopupMenu

Crée une boîte de dialogue du sélecteur de couleurs.

CMFCColorMenuButton::IsEmptyMenuAllowed

Indique si les menus vides sont pris en charge.

CMFCColorMenuButton::OnDraw

Appelé par l'infrastructure pour afficher une image sur un bouton.

CMFCColorMenuButton::OnDrawOnCustomizeList

Appelé par l'infrastructure avant qu'un objet d' CMFCColorMenuButton soit affiché dans la liste d'une boîte de dialogue personnalisation de la barre d'outils.

Notes

Pour remplacer la commande de menu ou le bouton de barre d'outils d'origine par un objet d' CMFCColorMenuButton , créez l'objet d' CMFCColorMenuButton , définissez les styles appropriés de CMFCColorBar, classe , puis appelez la méthode d' ReplaceButton de classe de CMFCToolBar, classe . Si vous personnalisez une barre d'outils, appelez la méthode de CMFCToolBarsCustomizeDialog::ReplaceButton .

La boîte de dialogue du sélecteur de couleurs est créée au cours de le traitement du gestionnaire d'événements de CMFCColorMenuButton::CreatePopupMenu . Le gestionnaire d'événement informe le frame parent avec un message d' WM_COMMAND . L'objet d' CMFCColorMenuButton envoie l'ID du contrôle qui est assigné à la commande de menu ou sur le bouton de barre d'outils d'origine.

Exemple

L'exemple suivant montre comment créer et configurer un bouton de menu de couleur en utilisant différentes méthodes dans la classe d' CMFCColorMenuButton . Dans l'exemple, un objet d' CPalette est d'abord créé et ensuite utilisé pour construire un objet avec de la classe d' CMFCColorMenuButton . L'objet d' CMFCColorMenuButton est ensuite configuré en activant ses boutons automatiques et autres, et en définissant sa couleur et le nombre de colonnes. Ce code fait partie d' Exemple de protection de 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;
}

Hiérarchie d'héritage

CObject

   CMFCToolBarButton

      CMFCToolBarMenuButton

         CMFCColorMenuButton

Configuration requise

en-tête : afxcolormenubutton.h

Voir aussi

Référence

Graphique de la hiérarchie

CMFCColorBar, classe

CMFCToolBar, classe

CMFCToolBarsCustomizeDialog, classe

CMFCColorButton, classe

Autres ressources

classes MFC