Partager via


CMFCMenuButton, classe

Bouton qui affiche un menu contextuel et signale les sélections de l'utilisateur dans les menus.

Syntaxe

class CMFCMenuButton : public CMFCButton

Membres

Constructeurs publics

Nom Description
CMFCMenuButton ::CMFCMenuButton Construit un objet CMFCMenuButton.

Méthodes publiques

Nom Description
CMFCMenuButton ::P reTranslateMessage Appelé par l’infrastructure pour traduire les messages de fenêtre avant qu’ils ne soient distribués. (Substitue CMFCButton::PreTranslateMessage.)
CMFCMenuButton ::SizeToContent Modifie la taille du bouton en fonction de sa taille de texte et d’image.

Données membres

Nom Description
CMFCMenuButton ::m_bOSMenu Spécifie s’il faut afficher le menu contextuel système par défaut ou utiliser CContextMenuManager ::TrackPopupMenu.
CMFCMenuButton ::m_bRightArrow Spécifie si le menu contextuel s’affiche sous ou à droite du bouton.
CMFCMenuButton ::m_bStayPressed Spécifie si le bouton de menu change d’état une fois que l’utilisateur a libéré le bouton.
CMFCMenuButton ::m_hMenu Handle du menu Windows attaché.
CMFCMenuButton ::m_nMenuResult Identificateur qui indique l’élément sélectionné par l’utilisateur dans le menu contextuel.
CMFCMenuButton ::m_bDefaultClick Autoriser le traitement par défaut (sur le bouton texte/image).

Notes

La CMFCMenuButton classe est dérivée de la classe CMFCButton, qui est, à son tour, dérivée de la classe CButton. Par conséquent, vous pouvez utiliser CMFCMenuButton dans votre code de la même façon que vous l’utiliseriez CButton.

Lorsque vous créez un CMFCMenuButton, vous devez passer un handle au menu contextuel associé. Ensuite, appelez la fonction CMFCMenuButton::SizeToContent. CMFCMenuButton::SizeToContent vérifie que la taille du bouton est suffisante pour inclure une flèche pointant vers l’emplacement où la fenêtre contextuelle s’affiche , à savoir, sous ou à droite du bouton.

Exemple

L’exemple suivant montre comment définir le handle du menu attaché au bouton, redimensionner le bouton en fonction de sa taille de texte et d’image et définir le menu contextuel affiché par l’infrastructure. Cet extrait de code fait partie de l’exemple New Controls.

CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

Spécifications

En-tête : afxmenubutton.h

CMFCMenuButton ::CMFCMenuButton

Construit un nouvel objet CMFCMenuButton .

CMFCMenuButton();

CMFCMenuButton ::m_bOSMenu

Variable membre booléenne qui indique le menu contextuel affiché par l’infrastructure.

BOOL m_bOSMenu;

Notes

Si m_bOSMenu la valeur est TRUE, l’infrastructure appelle la méthode héritée TrackPopupMenu pour cet objet. Sinon, l’infrastructure appelle CContextMenuManager ::TrackPopupMenu.

CMFCMenuButton ::m_bRightArrow

Variable membre booléenne qui indique l’emplacement du menu contextuel.

BOOL m_bRightArrow;

Notes

Lorsque l’utilisateur appuie sur le bouton de menu, l’application affiche un menu contextuel. L’infrastructure affiche le menu contextuel sous le bouton ou à droite du bouton. Le bouton comporte également une petite flèche qui indique où le menu contextuel s’affiche. Si m_bRightArrow la valeur est TRUE, l’infrastructure affiche le menu contextuel à droite du bouton. Sinon, il affiche le menu contextuel sous le bouton.

CMFCMenuButton ::m_bStayPressed

Variable membre booléenne qui indique si le bouton de menu apparaît enfoncé pendant que l’utilisateur effectue une sélection dans le menu contextuel.

BOOL m_bStayPressed;

Notes

Si le membre a la m_bStayPressed valeur FALSE, le bouton de menu ne devient pas enfoncé lorsque l’utilisation clique sur le bouton. Dans ce cas, l’infrastructure affiche uniquement le menu contextuel.

Si le membre a la m_bStayPressed valeur TRUE, le bouton de menu est enfoncé lorsque l’utilisateur clique sur le bouton. Elle reste enfoncée jusqu’à ce que l’utilisateur ferme le menu contextuel, soit en effectuant une sélection ou en annulant.

CMFCMenuButton ::m_hMenu

Handle du menu attaché.

HMENU m_hMenu;

Notes

L’infrastructure affiche le menu indiqué par cette variable membre lorsque l’utilisateur clique sur le bouton de menu.

CMFCMenuButton ::m_nMenuResult

Entier qui indique l’élément sélectionné par l’utilisateur dans le menu contextuel.

int m_nMenuResult;

Notes

La valeur de cette variable membre est égale à zéro si l’utilisateur annule le menu sans effectuer de sélection ou si une erreur se produit.

CMFCMenuButton ::m_bDefaultClick

Autorise le traitement par défaut de texte ou d’images sur le bouton.

BOOL  m_bDefaultClick;

Notes

Si vous définissez m_bDefaultClick sur false, le bouton affiche le menu lorsque vous cliquez n’importe où sur le bouton.

CMFCMenuButton ::P reTranslateMessage

Appelé par l’infrastructure pour traduire les messages de fenêtre avant qu’ils ne soient distribués.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Paramètres

pMsg
[in] Pointe vers une structure MSG qui contient le message à traiter.

Valeur de retour

Différent de zéro si le message a été traduit et ne doit pas être distribué ; 0 si le message n’a pas été traduit et doit être distribué.

Notes

CMFCMenuButton ::SizeToContent

Modifie la taille du bouton en fonction de sa taille de texte et de sa taille d’image.

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

Paramètres

bCalcOnly
[in] Paramètre booléen qui indique si cette méthode redimensionne le bouton .

Valeur de retour

Objet CSize qui spécifie la nouvelle taille du bouton.

Notes

Si vous appelez cette fonction et bCalcOnly a la valeur TRUE, SizeToContent calcule uniquement la nouvelle taille du bouton.

La nouvelle taille du bouton est calculée pour s’adapter au texte, à l’image et à la flèche du bouton. L’infrastructure ajoute également des marges prédéfinies de 10 pixels pour le bord horizontal et 5 pixels pour le bord vertical.

Voir aussi

Graphique hiérarchique
Classes
CMFCButton, classe