Partager via


CMFCDropDownToolbarButton, classe

Type de bouton de barre d'outils qui se comporte comme un bouton normal lorsque l'utilisateur clique dessus. Toutefois, il ouvre une barre d’outils déroulante ( CMFCDropDownToolBar Class si l’utilisateur appuie et conserve le bouton de barre d’outils vers le bas.

Syntaxe

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Membres

Constructeurs publics

Nom Description
CMFCDropDownToolbarButton ::CMFCDropDownToolbarButton Construit un objet CMFCDropDownToolbarButton.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destructeur.

Méthodes publiques

Nom Description
CMFCDropDownToolbarButton ::CopyFrom Copie les propriétés d’un autre bouton de barre d’outils vers le bouton actif. (Remplacements CMFCToolBarButton ::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Utilisé par l'infrastructure pour créer une instance dynamique de ce type de classe.
CMFCDropDownToolbarButton ::D ropDownToolbar Ouvre une barre d’outils déroulante.
CMFCDropDownToolbarButton ::ExportToMenuButton Copie du texte du bouton de la barre d’outils dans un menu. (Remplacements CMFCToolBarButton ::ExportToMenuButton.)
CMFCDropDownToolbarButton ::GetDropDownToolBar Récupère la barre d’outils déroulante associée au bouton.
CMFCDropDownToolbarButton::GetThisClass Utilisé par l’infrastructure pour obtenir un pointeur vers l’objet CRuntimeClass associé à ce type de classe.
CMFCDropDownToolbarButton ::IsDropDown Détermine si la barre d’outils déroulante est actuellement ouverte.
CMFCDropDownToolbarButton ::IsExtrasize Détermine si le bouton peut être affiché avec une bordure étendue. (Remplacements CMFCToolBarButton ::IsExtrasize.)
CMFCDropDownToolbarButton ::OnCalculateSize Appelé par l’infrastructure pour calculer la taille du bouton pour le contexte de l’appareil spécifié et l’état d’ancrage. (Remplacements CMFCToolBarButton ::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Appelé par l’infrastructure pour gérer le message WM_CANCELMODE . (Substitue CMCToolBarButton::OnCancelMode.)
CMFCDropDownToolbarButton ::OnChangeParentWnd Appelé par l’infrastructure lorsque le bouton est inséré dans une nouvelle barre d’outils. (Remplacements CMFCToolBarButton ::OnChangeParentWnd.)
CMFCDropDownToolbarButton ::OnClick Appelé par l’infrastructure lorsque l’utilisateur clique sur le bouton de la souris. (Remplacements CMFCToolBarButton ::OnClick.)
CMFCDropDownToolbarButton ::OnClickUp Appelé par l’infrastructure lorsque l’utilisateur relâche le bouton de la souris. (Remplacements CMFCToolBarButton ::OnClickUp.)
CMFCDropDownToolbarButton ::OnContextHelp Appelé par l’infrastructure lorsque la barre d’outils parent gère un message WM_HELPHITTEST. (Remplacements CMFCToolBarButton ::OnContextHelp.)
CMFCDropDownToolbarButton ::OnCustomizeMenu Modifie le menu fourni lorsque l’application affiche un menu contextuel dans la barre d’outils parente. (Remplacements CMFCToolBarButton ::OnCustomizeMenu.)
CMFCDropDownToolbarButton ::OnDraw Appelé par l’infrastructure pour dessiner le bouton à l’aide des styles et options spécifiés. (Remplacements CMFCToolBarButton ::OnDraw.)
CMFCDropDownToolbarButton ::OnDrawOnCustomizeList Appelé par l’infrastructure pour dessiner le bouton dans le volet Commandes de la boîte de dialogue Personnaliser . (Remplacements CMFCToolBarButton ::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton ::Serialize Lit cet objet à partir d’une archive ou l’écrit dans une archive. (Remplacements CMFCToolBarButton ::Serialize.)
CMFCDropDownToolbarButton ::SetDefaultCommand Définit la commande par défaut utilisée par l’infrastructure lorsqu’un utilisateur clique sur le bouton.

Données membres

Nom Description
CMFCDropDownToolbarButton ::m_uiShowBarDelay Spécifie la durée pendant laquelle un utilisateur doit maintenir le bouton de la souris enfoncé avant l’affichage de la barre d’outils déroulante.

Notes

Un CMFCDropDownToolBarButton bouton différent d’un bouton ordinaire dans lequel il a une petite flèche dans le coin inférieur droit du bouton. Une fois que l’utilisateur a sélectionné un bouton dans la barre d’outils déroulante, l’infrastructure affiche son icône sur le bouton de barre d’outils de niveau supérieur (le bouton avec la petite flèche dans le coin inférieur droit).

Pour plus d’informations sur l’implémentation d’une barre d’outils déroulante, consultez CMFCDropDownToolBar, classe.

L’objet CMFCDropDownToolBarButton peut être exporté vers un objet CMFCToolBarMenuButton Class et affiché en tant que bouton de menu avec un menu contextuel.

Hiérarchie d'héritage

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Spécifications

En-tête : afxdropdowntoolbar.h

CMFCDropDownToolbarButton ::CopyFrom

Copie les propriétés d’un autre bouton de barre d’outils vers le bouton actif.

virtual void CopyFrom(const CMFCToolBarButton& src);

Paramètres

src
[in] Référence au bouton source à partir duquel copier.

Notes

Appelez cette méthode pour copier un autre bouton de barre d’outils vers ce bouton de barre d’outils. src doit être de type CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton ::CMFCDropDownToolbarButton

Construit un objet CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Paramètres

lpszName
[in] Texte par défaut du bouton.

pToolBar
[in] Pointeur vers l’objet CMFCDropDownToolBar affiché lorsque l’utilisateur appuie sur le bouton.

Notes

La deuxième surcharge du constructeur copie vers le bouton déroulant le premier bouton de la barre d’outils spécifiée par pToolBar .

En règle générale, un bouton de barre d’outils déroulante utilise le texte du bouton le plus récemment utilisé dans la barre d’outils spécifiée par pToolBar . Il utilise le texte spécifié par lpszName lorsque le bouton est converti en bouton de menu ou affiché sous l’onglet Commandes de la boîte de dialogue Personnaliser. Pour plus d’informations sur la boîte de dialogue Personnaliser , consultez CMFCToolBarsCustomizeDialog, classe.

Exemple

L’exemple suivant montre comment construire un objet de la CMFCDropDownToolbarButton classe. Cet extrait de code fait partie de l’exemple de démonstration Visual Studio.

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

Ouvre une barre d’outils déroulante.

BOOL DropDownToolbar(CWnd* pWnd);

Paramètres

pWnd
[in] Fenêtre parente du cadre déroulant ou NULL pour utiliser la fenêtre parente du bouton de barre d’outils déroulante.

Valeur de retour

Différent de zéro si la méthode réussit ; sinon 0.

Notes

La méthode CMFCDropDownToolbarButton ::OnClick appelle cette méthode pour ouvrir la barre d’outils déroulante lorsque l’utilisateur appuie et conserve le bouton de barre d’outils vers le bas.

Cette méthode crée la barre d’outils déroulante à l’aide de la méthode CMFCDropDownFrame ::Create . Si la barre d’outils parente est ancrée verticalement, cette méthode positionne la barre d’outils déroulante à gauche ou à droite de la barre d’outils parente, selon l’ajustement. Sinon, cette méthode positionne la barre d’outils déroulante sous la barre d’outils parente.

Cette méthode échoue si pWnd a la valeur NULL et que le bouton de barre d’outils déroulant n’a pas de fenêtre parente.

CMFCDropDownToolbarButton ::ExportToMenuButton

Copie du texte du bouton de la barre d’outils dans un menu.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Paramètres

menuButton
[in] Référence au bouton du menu cible.

Valeur de retour

Différent de zéro si la méthode réussit ; sinon, 0.

Notes

Cette méthode appelle l’implémentation de classe de base ( CMFCToolBarButton ::ExportToMenuButton), puis ajoute au bouton de menu cible un menu contextuel qui contient chaque élément de menu de barre d’outils de ce bouton. Cette méthode n’ajoute pas de sous-menus au menu contextuel.

Cette méthode échoue si la barre d’outils parente, m_pToolBarest NULL ou si l’implémentation de classe de base retourne FALSE.

CMFCDropDownToolbarButton ::GetDropDownToolBar

Récupère la barre d’outils déroulante associée au bouton.

CMFCToolBar* GetDropDownToolBar() const;

Valeur de retour

Barre d’outils déroulante associée au bouton.

Notes

Cette méthode retourne le membre de m_pToolBar données.

CMFCDropDownToolbarButton ::IsDropDown

Détermine si la barre d’outils déroulante est actuellement ouverte.

BOOL IsDropDown() const;

Valeur de retour

Différent de zéro si la barre d’outils déroulante est actuellement ouverte ; sinon 0.

Notes

L’infrastructure ouvre la barre d’outils déroulante à l’aide de la méthode CMFCDropDownToolbarButton ::D ropDownToolbar . L’infrastructure ferme la barre d’outils déroulante lorsque l’utilisateur appuie sur le bouton gauche de la souris dans la zone non cliente de la barre d’outils déroulante.

CMFCDropDownToolbarButton ::IsExtrasize

Détermine si le bouton peut être affiché avec une bordure étendue.

virtual BOOL IsExtraSize() const;

Valeur de retour

Différent de zéro si le bouton de barre d’outils peut être affiché avec une bordure étendue ; sinon 0.

Notes

Pour plus d’informations sur les bordures étendues, consultez CMFCToolBarButton ::IsExtraSize.

CMFCDropDownToolbarButton ::m_uiShowBarDelay

Spécifie la durée pendant laquelle un utilisateur doit maintenir le bouton de la souris enfoncé avant l’affichage de la barre d’outils déroulante.

static UINT m_uiShowBarDelay;

Notes

Le délai est mesuré en millisecondes. La valeur par défaut est 500. Vous pouvez définir un autre délai en modifiant la valeur de ce membre de données partagé.

CMFCDropDownToolbarButton ::OnCalculateSize

Appelé par l’infrastructure pour calculer la taille du bouton pour le contexte de l’appareil spécifié et l’état d’ancrage.

virtual SIZE OnCalculateSize(
    CDC* pDC,
    const CSize& sizeDefault,
    BOOL bHorz);

Paramètres

pDC
[in] Contexte de l’appareil qui affiche le bouton.

sizeDefault
[in] Taille par défaut du bouton.

bHorz
[in] État d’ancrage de la barre d’outils parente. Ce paramètre a la valeur TRUE si la barre d’outils est ancrée horizontalement ou flottante, ou FALSE si la barre d’outils est ancrée verticalement.

Valeur de retour

Structure SIZE qui contient les dimensions du bouton, en pixels.

Notes

Cette méthode étend l’implémentation de classe de base ( CMFCToolBarButton ::OnCalculateSize) en ajoutant la largeur de la flèche déroulante à la dimension horizontale de la taille du bouton.

CMFCDropDownToolbarButton ::OnChangeParentWnd

Appelé par l’infrastructure lorsque le bouton est inséré dans une nouvelle barre d’outils.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Paramètres

pWndParent
[in] Nouvelle fenêtre parente.

Notes

Cette méthode remplace l’implémentation de classe de base ( CMFCToolBarButton ::OnChangeParentWnd) en désactivant l’étiquette de texte ( CMFCToolBarButton ::m_strText) et en définissant cmFCToolBarButton ::m_bText et CMFCToolBarButton ::m_bUserButton membres de données sur FALSE.

CMFCDropDownToolbarButton ::OnClick

Appelé par l’infrastructure lorsque l’utilisateur clique sur le bouton de la souris.

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Paramètres

pWnd
[in] Fenêtre parente du bouton de barre d’outils.

bDelay
[in] TRUE si le message doit être géré avec un délai.

Valeur de retour

Différent de zéro si le bouton traite le message de clic ; sinon 0.

Notes

Cette méthode étend l’implémentation de classe de base, CMFCToolBarButton ::OnClick, en mettant à jour l’état de la barre d’outils déroulante.

Lorsqu’un utilisateur clique sur le bouton de barre d’outils, cette méthode crée un minuteur qui attend la durée spécifiée par le membre de données CMFCDropDownToolbarButton ::m_uiShowBarDelay membre de données, puis ouvre la barre d’outils déroulante à l’aide de la méthode CMFCDropDownToolbarButton ::D ropDownToolbar . Cette méthode ferme la barre d’outils déroulante la deuxième fois que l’utilisateur clique sur le bouton de barre d’outils.

CMFCDropDownToolbarButton ::OnClickUp

Appelé par l’infrastructure lorsque l’utilisateur relâche le bouton de la souris.

virtual BOOL OnClickUp();

Valeur de retour

Différent de zéro si le bouton traite le message de clic ; sinon 0.

Notes

Cette méthode étend l’implémentation de classe de base, CMFCToolBarButton ::OnClickUp, en mettant à jour l’état de la barre d’outils déroulante.

Cette méthode arrête le minuteur de barre d’outils déroulant s’il est actif. Elle ferme la barre d’outils déroulante si elle est ouverte.

Pour plus d’informations sur la barre d’outils déroulante et le minuteur de barre d’outils déroulant, consultez CMFCDropDownToolbarButton ::OnClick.

CMFCDropDownToolbarButton ::OnContextHelp

Appelé par l’infrastructure lorsque la barre d’outils parent gère un message WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Paramètres

pWnd
[in] Fenêtre parente du bouton de barre d’outils.

Valeur de retour

Différent de zéro si le bouton traite le message d’aide ; sinon 0.

Notes

Cette méthode étend l’implémentation de classe de base ( CMFCToolBarButton ::OnContextHelp) en appelant la méthode CMFCDropDownToolbarButton ::OnClick avec bDelay défini sur FALSE. Cette méthode retourne la valeur retournée par CMFCDropDownToolbarButton ::OnClick.

Pour plus d’informations sur le message WM_HELPHITTEST, consultez TN028 : Prise en charge de l’aide contextuelle.

CMFCDropDownToolbarButton ::OnCustomizeMenu

Modifie le menu fourni lorsque l’application affiche un menu contextuel dans la barre d’outils parente.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Paramètres

pMenu
[in] Menu à personnaliser.

Valeur de retour

Cette méthode retourne TRUE.

Notes

Cette méthode étend l’implémentation de classe de base ( CMFCToolBarButton ::OnCustomizeMenu) en désactivant les éléments de menu suivants :

  • Copier l’image du bouton

  • Apparence du bouton

  • Image

  • Texte

  • Image et texte

Remplacez cette méthode pour modifier le menu contextuel affiché par l’infrastructure en mode de personnalisation.

CMFCDropDownToolbarButton ::OnDraw

Appelé par l’infrastructure pour dessiner le bouton à l’aide des styles et options spécifiés.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    CMFCToolBarImages* pImages,
    BOOL bHorz = TRUE,
    BOOL bCustomizeMode = FALSE,
    BOOL bHighlight = FALSE,
    BOOL bDrawBorder = TRUE,
    BOOL bGrayDisabledButtons = TRUE);

Paramètres

pDC
[in] Contexte de l’appareil qui affiche le bouton.

rect
[in] Rectangle englobant du bouton.

pImages
[in] Collection d’images de barre d’outils associées au bouton.

bHorz
[in] État d’ancrage de la barre d’outils parente. Ce paramètre est TRUE lorsque le bouton est ancré horizontalement et FALSE lorsque le bouton est ancré verticalement.

bCustomizeMode
[in] Spécifie si la barre d’outils est en mode de personnalisation. Ce paramètre a la valeur TRUE lorsque la barre d’outils est en mode de personnalisation et FALSE lorsque la barre d’outils n’est pas en mode de personnalisation.

bHighlight
[in] Spécifie si le bouton est mis en surbrillance. Ce paramètre a la valeur TRUE lorsque le bouton est mis en surbrillance et FALSE lorsque le bouton n’est pas mis en surbrillance.

bDrawBorder
[in] Spécifie si le bouton doit afficher sa bordure. Ce paramètre a la valeur TRUE lorsque le bouton doit afficher sa bordure et FALSE lorsque le bouton ne doit pas afficher sa bordure.

bGrayDisabledButtons
[in] Spécifie s’il faut ombrer les boutons désactivés ou utiliser la collection d’images désactivées. Ce paramètre a la valeur TRUE lorsque les boutons désactivés doivent être ombrés et FALSE lorsque cette méthode doit utiliser la collection d’images désactivées.

Notes

Remplacez cette méthode pour personnaliser le dessin du bouton de barre d’outils.

CMFCDropDownToolbarButton ::OnDrawOnCustomizeList

Appelé par l’infrastructure pour dessiner le bouton dans le volet Commandes de la boîte de dialogue Personnaliser .

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Paramètres

pDC
[in] Contexte de l’appareil qui affiche le bouton.

rect
[in] Rectangle englobant du bouton.

bSelected
[in] Indique si le bouton est sélectionné. Si ce paramètre a la valeur TRUE, le bouton est sélectionné. Si ce paramètre a la valeur FALSE, le bouton n’est pas sélectionné.

Valeur de retour

Largeur, en pixels, du bouton sur le contexte d’appareil spécifié.

Notes

Cette méthode est appelée par la boîte de dialogue de personnalisation ( onglet Commandes ) lorsque le bouton doit s’afficher sur la zone de liste de dessin propriétaire.

Cette méthode étend l’implémentation de la classe de base ( CMFCToolBarButton ::OnDrawOnCustomizeList) en remplaçant l’étiquette de texte du bouton par le nom du bouton (autrement dit, par la valeur du paramètre lpszName que vous avez passé au constructeur).

CMFCDropDownToolbarButton ::Serialize

Lit cet objet à partir d’une archive ou l’écrit dans une archive.

virtual void Serialize(CArchive& ar);

Paramètres

Ar
[in] Objet CArchive à partir duquel ou vers lequel sérialiser.

Notes

Cette méthode étend l’implémentation de classe de base ( CMFCToolBarButton ::Serialize) en sérialisant l’ID de ressource de la barre d’outils parente. Lorsque l’archive est chargée ( CArchive ::IsLoading retourne une valeur différente de zéro), cette méthode définit le m_pToolBar membre de données sur la barre d’outils qui contient l’ID de ressource sérialisé.

CMFCDropDownToolbarButton ::SetDefaultCommand

Définit la commande par défaut utilisée par l’infrastructure lorsqu’un utilisateur clique sur le bouton.

void SetDefaultCommand(UINT uiCmd);

Paramètres

uiCmd
[in] ID de la commande par défaut.

Notes

Appelez cette méthode pour spécifier une commande par défaut exécutée par l’infrastructure lorsque l’utilisateur clique sur le bouton. Un élément avec l’ID de commande spécifié par uiCmd doit se trouver dans la barre d’outils déroulante parente.

Voir aussi

Graphique hiérarchique
Classes
CMFCDropDownToolBar, classe
CMFCToolBar, classe
CMFCToolBarMenuButton, classe
Procédure pas à pas : placement de contrôles dans les barres d’outils