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 |
---|---|
Construit un objet CMFCColorMenuButton. |
Méthodes publiques
Nom |
Description |
---|---|
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.) |
|
Active l'affichage de couleurs de document spécifique au lieu des couleurs système. |
|
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….) |
|
Active la capacité d'arracher un volet de couleur. |
|
Extrait la couleur automatique actuelle. |
|
Extrait la couleur du bouton actuel. |
|
Extrait la couleur qui correspond à un ID de commande spécifiée |
|
Appelé par l'infrastructure lorsque la fenêtre parente change. |
|
Ouvre une boîte de dialogue de sélection de couleurs. |
|
Définit la couleur du bouton en cours de couleur. |
|
Définit la couleur du bouton de menu spécifié de couleur. |
|
Définit un nouveau nom pour la couleur spécifiée. |
|
Définit le nombre de colonnes affichées par un objet d' CMFCColorBar . |
Méthodes protégées
Nom |
Description |
---|---|
Copie un autre bouton de barre d'outils sur le bouton actuel. |
|
Crée une boîte de dialogue du sélecteur de couleurs. |
|
Indique si les menus vides sont pris en charge. |
|
Appelé par l'infrastructure pour afficher une image sur un bouton. |
|
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
Configuration requise
en-tête : afxcolormenubutton.h
Voir aussi
Référence
CMFCToolBarsCustomizeDialog, classe