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
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.