Freigeben über


CMFCMenuButton-Klasse

Eine Schaltfläche, die ein Popupmenü anzeigt und die vom Benutzer gewählte Menüoption meldet.

Syntax

class CMFCMenuButton : public CMFCButton

Member

Öffentliche Konstruktoren

Name Beschreibung
CMFCMenuButton::CMFCMenuButton Erstellt ein CMFCMenuButton-Objekt.

Öffentliche Methoden

Name Beschreibung
CMFCMenuButton::P reTranslateMessage Wird vom Framework aufgerufen, um Fensternachrichten zu übersetzen, bevor sie verteilt werden. (Überschreibt CMFCButton::PreTranslateMessage.)
CMFCMenuButton::SizeToContent Ändert die Größe der Schaltfläche entsprechend dem Text und der Bildgröße.

Datenelemente

Name Beschreibung
CMFCMenuButton::m_bOSMenu Gibt an, ob das Standardmäßige Systempopupmenü oder CContextMenuManager::TrackPopupMenuMenu angezeigt werden soll.
CMFCMenuButton::m_bRightArrow Gibt an, ob das Popupmenü unter oder rechts neben der Schaltfläche angezeigt wird.
CMFCMenuButton::m_bStayPressed Gibt an, ob die Menüschaltfläche ihren Zustand ändert, nachdem der Benutzer die Schaltfläche loslässt.
CMFCMenuButton::m_hMenu Ein Handle für das angefügte Windows-Menü.
CMFCMenuButton::m_nMenuResult Ein Bezeichner, der angibt, welches Element der Benutzer im Popupmenü ausgewählt hat.
CMFCMenuButton::m_bDefaultClick Standardverarbeitung (auf Schaltflächentext/Bild) zulassen.

Hinweise

Die CMFCMenuButton Klasse wird von der CMFCButton-Klasse abgeleitet, die wiederum von der CButton-Klasse abgeleitet wird. Daher können Sie in Ihrem Code die gleiche Weise verwenden CMFCMenuButton , wie Sie es verwenden CButtonwürden.

Wenn Sie ein CMFCMenuButtonObjekt erstellen, müssen Sie ein Handle an das zugeordnete Popupmenü übergeben. Rufen Sie als Nächstes die Funktion CMFCMenuButton::SizeToContentauf. CMFCMenuButton::SizeToContent überprüft, ob die Schaltflächengröße ausreicht, um einen Pfeil einzuschließen, der auf die Position zeigt, an der das Popupfenster angezeigt wird – nämlich unter oder rechts neben der Schaltfläche.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie Sie den Ziehpunkt des menüs festlegen, das an die Schaltfläche angefügt ist, die Größe der Schaltfläche entsprechend ihrem Text und bildgröße ändern und das Popupmenü festlegen, das vom Framework angezeigt wird. Dieser Codeausschnitt ist Teil des Beispiels "Neue Steuerelemente".

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;

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

Anforderungen

Kopfzeile: afxmenubutton.h

CMFCMenuButton::CMFCMenuButton

Erstellt ein neues CMFCMenuButton -Objekt.

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

Eine boolesche Membervariable, die angibt, welches Popupmenü das Framework anzeigt.

BOOL m_bOSMenu;

Hinweise

Ist m_bOSMenu TRUE, ruft das Framework die geerbte TrackPopupMenu Methode für dieses Objekt auf. Andernfalls ruft das Framework CContextMenuManager::TrackPopupMenuMenu auf.

CMFCMenuButton::m_bRightArrow

Eine boolesche Membervariable, die den Speicherort des Popupmenüs angibt.

BOOL m_bRightArrow;

Hinweise

Wenn der Benutzer die Menüschaltfläche drückt, wird in der Anwendung ein Popupmenü angezeigt. Das Framework zeigt das Popupmenü entweder unter der Schaltfläche oder rechts neben der Schaltfläche an. Die Schaltfläche weist auch einen kleinen Pfeil auf, der angibt, wo das Popupmenü angezeigt wird. Wenn m_bRightArrow TRUE ist, zeigt das Framework das Popupmenü rechts neben der Schaltfläche an. Andernfalls wird das Popupmenü unter der Schaltfläche angezeigt.

CMFCMenuButton::m_bStayPressed

Eine boolesche Membervariable, die angibt, ob die Menüschaltfläche gedrückt wird, während der Benutzer im Popupmenü eine Auswahl trifft.

BOOL m_bStayPressed;

Hinweise

Wenn das m_bStayPressed Element FALSCH ist, wird die Menüschaltfläche nicht gedrückt, wenn die Verwendung auf die Schaltfläche klickt. In diesem Fall zeigt das Framework nur das Popupmenü an.

Wenn das m_bStayPressed Element WAHR ist, wird die Menüschaltfläche gedrückt, wenn der Benutzer auf die Schaltfläche klickt. Sie bleibt gedrückt, bis der Benutzer das Popupmenü geschlossen hat, entweder durch Auswahl oder Abbrechen.

CMFCMenuButton::m_hMenu

Der Ziehpunkt für das angefügte Menü.

HMENU m_hMenu;

Hinweise

Das Framework zeigt das von dieser Membervariable angegebene Menü an, wenn der Benutzer auf die Menüschaltfläche klickt.

CMFCMenuButton::m_nMenuResult

Eine ganze Zahl, die angibt, welches Element der Benutzer im Popupmenü auswählt.

int m_nMenuResult;

Hinweise

Der Wert dieser Membervariable ist null, wenn der Benutzer das Menü abbricht, ohne eine Auswahl vorzunehmen oder wenn ein Fehler auftritt.

CMFCMenuButton::m_bDefaultClick

Ermöglicht die Standardverarbeitung von Text oder Bildern auf der Schaltfläche.

BOOL  m_bDefaultClick;

Hinweise

Wenn Sie m_bDefaultClick auf "false" festlegen, wird das Menü angezeigt, wenn Sie auf eine beliebige Stelle auf der Schaltfläche klicken.

CMFCMenuButton::P reTranslateMessage

Wird vom Framework aufgerufen, um Fensternachrichten zu übersetzen, bevor sie verteilt werden.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parameter

pMsg
[in] Verweist auf eine MSG-Struktur , die die zu verarbeitende Nachricht enthält.

Rückgabewert

Nonzero, wenn die Nachricht übersetzt wurde und nicht versendet werden sollte; 0, wenn die Nachricht nicht übersetzt wurde und verteilt werden soll.

Hinweise

CMFCMenuButton::SizeToContent

Ändert die Größe der Schaltfläche entsprechend ihrer Textgröße und Bildgröße.

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

Parameter

bCalcOnly
[in] Ein boolescher Parameter, der angibt, ob diese Methode die Größe der Schaltfläche ändert.

Rückgabewert

Ein CSize-Objekt, das die neue Größe für die Schaltfläche angibt.

Hinweise

Wenn Sie diese Funktion aufrufen und "bCalcOnly " wahr ist, SizeToContent wird nur die neue Größe der Schaltfläche berechnet.

Die neue Größe der Schaltfläche wird berechnet, um den Schaltflächentext, das Bild und den Pfeil anzupassen. Das Framework fügt außerdem vordefinierte Seitenränder von 10 Pixeln für die horizontale Kante und 5 Pixel für den vertikalen Rand hinzu.

Siehe auch

Hierarchiediagramm
Klassen
CMFCButton-Klasse