Share via


CMFCDropDownToolbarButton-Klasse

Ein Symbolleisten-Schaltflächentyp, der sich wie eine normale Schaltfläche verhält, wenn darauf geklickt wird. Es öffnet jedoch eine Dropdownsymbolleiste ( CMFCDropDownToolBar-Klasse , wenn der Benutzer die Symbolleistenschaltfläche drückt und gedrückt hält.

Syntax

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Member

Öffentliche Konstruktoren

Name Beschreibung
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton Erstellt ein CMFCDropDownToolbarButton-Objekt.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destruktor.

Öffentliche Methoden

Name Beschreibung
CMFCDropDownToolbarButton::CopyFrom Kopiert die Eigenschaften einer anderen Symbolleistenschaltfläche auf die aktuelle Schaltfläche. (Außerkraftsetzungen CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Wird vom Framework verwendet, um eine dynamische Instanz dieses Klassentyps zu erstellen.
CMFCDropDownToolbarButton::D ropDownToolbar Öffnet eine Dropdownsymbolleiste.
CMFCDropDownToolbarButton::ExportToMenuButton Kopiert Text von der Symbolleistenschaltfläche in ein Menü. (Außerkraftsetzungen CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar Ruft die Dropdownsymbolleiste ab, die der Schaltfläche zugeordnet ist.
CMFCDropDownToolbarButton::GetThisClass Wird vom Framework verwendet, um einen Zeiger auf das CRuntimeClass -Objekt abzurufen, das diesem Klassentyp zugeordnet ist.
CMFCDropDownToolbarButton::IsDropDown Bestimmt, ob die Dropdownsymbolleiste zurzeit geöffnet ist.
CMFCDropDownToolbarButton::IsExtraSize Bestimmt, ob die Schaltfläche mit einem erweiterten Rahmen angezeigt werden kann. (Außerkraftsetzungen CMFCToolBarButton::IsExtraSize.)
CMFCDropDownToolbarButton::OnCalculateSize Wird vom Framework aufgerufen, um die Größe der Schaltfläche für den angegebenen Gerätekontext und Andockzustand zu berechnen. (Außerkraftsetzungen CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Vom Framework aufgerufen, um die WM_CANCELMODE Nachricht zu verarbeiten. (Überschreibt CMCToolBarButton::OnCancelMode.)
CMFCDropDownToolbarButton::OnChangeParentWnd Wird vom Framework aufgerufen, wenn die Schaltfläche in eine neue Symbolleiste eingefügt wird. (Außerkraftsetzungen CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick Wird vom Framework aufgerufen, wenn der Benutzer auf die Maustaste klickt. (Außerkraftsetzungen CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp Wird vom Framework aufgerufen, wenn der Benutzer die Maustaste loslässt. (Außerkraftsetzungen CMFCToolBarButton::OnClickUp.)
CMFCDropDownToolbarButton::OnContextHelp Wird vom Framework aufgerufen, wenn die übergeordnete Symbolleiste eine WM_HELPHITTEST Nachricht behandelt. (Außerkraftsetzungen CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu Ändert das bereitgestellte Menü, wenn die Anwendung ein Kontextmenü auf der übergeordneten Symbolleiste anzeigt. (Außerkraftsetzungen CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw Wird vom Framework aufgerufen, um die Schaltfläche mithilfe der angegebenen Stile und Optionen zu zeichnen. (Außerkraftsetzungen CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Wird vom Framework aufgerufen, um die Schaltfläche im Befehlsbereich des Dialogfelds Anpassen zu zeichnen. (Außerkraftsetzungen CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize Liest dieses Objekt aus einem Archiv oder schreibt es in ein Archiv. (Außerkraftsetzungen CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand Legt den Standardbefehl fest, den das Framework verwendet, wenn ein Benutzer auf die Schaltfläche klickt.

Datenelemente

Name Beschreibung
CMFCDropDownToolbarButton::m_uiShowBarDelay Gibt an, wie lange ein Benutzer die Maustaste gedrückt halten muss, bevor die Dropdownsymbolleiste angezeigt wird.

Hinweise

Eine CMFCDropDownToolBarButton unterscheidet sich von einer normalen Schaltfläche darin, dass sie einen kleinen Pfeil in der unteren rechten Ecke der Schaltfläche enthält. Nachdem der Benutzer eine Schaltfläche aus der Dropdownsymbolleiste auswählt, zeigt das Framework sein Symbol auf der Symbolleistenschaltfläche der obersten Ebene an (die Schaltfläche mit dem kleinen Pfeil in der unteren rechten Ecke).

Informationen zum Implementieren einer Dropdownsymbolleiste finden Sie unter CMFCDropDownToolBar Class.

Das CMFCDropDownToolBarButton Objekt kann in ein CMFCToolBarMenuButton Class-Objekt exportiert und als Menüschaltfläche mit einem Popupmenü angezeigt werden.

Vererbungshierarchie

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Anforderungen

Header: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Kopiert die Eigenschaften einer anderen Symbolleistenschaltfläche auf die aktuelle Schaltfläche.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parameter

src
[in] Ein Verweis auf die Quellschaltfläche, aus der kopiert werden soll.

Hinweise

Rufen Sie diese Methode auf, um eine weitere Symbolleistenschaltfläche auf diese Symbolleistenschaltfläche zu kopieren. src muss vom Typ CMFCDropDownToolbarButtonsein.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

Erstellt ein CMFCDropDownToolbarButton-Objekt.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Parameter

lpszName
[in] Der Standardtext der Schaltfläche.

pToolBar
[in] Ein Zeiger auf das CMFCDropDownToolBar Objekt, das angezeigt wird, wenn der Benutzer die Schaltfläche drückt.

Hinweise

Die zweite Überladung des Konstruktors kopiert auf die Dropdownschaltfläche die erste Schaltfläche aus der Symbolleiste, die pToolBar angibt.

In der Regel verwendet eine Dropdownsymbolleistenschaltfläche den Text aus der zuletzt verwendeten Schaltfläche in der Symbolleiste, die pToolBar angibt. Er verwendet den text, der durch lpszName angegeben wird, wenn die Schaltfläche in eine Menüschaltfläche konvertiert wird oder auf der Registerkarte "Befehle" des Dialogfelds "Anpassen" angezeigt wird. Weitere Informationen zum Dialogfeld "Anpassen " finden Sie unter CMFCToolBarsCustomizeDialog-Klasse.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie ein Objekt der CMFCDropDownToolbarButton Klasse erstellt wird. Dieser Codeausschnitt ist Teil des Visual Studio Demo-Beispiels.

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

Öffnet eine Dropdownsymbolleiste.

BOOL DropDownToolbar(CWnd* pWnd);

Parameter

pWnd
[in] Das übergeordnete Fenster des Dropdownframes oder NULL, um das übergeordnete Fenster der Dropdownsymbolleistenschaltfläche zu verwenden.

Rückgabewert

Nonzero, wenn die Methode erfolgreich ist; andernfalls 0.

Hinweise

Die CMFCDropDownToolbarButton::OnClick-Methode ruft diese Methode auf, um die Dropdownsymbolleiste zu öffnen, wenn der Benutzer die Symbolleiste drückt und gedrückt hält.

Mit diesen Methoden wird die Dropdownsymbolleiste mithilfe der CMFCDropDownFrame::Create-Methode erstellt. Wenn die übergeordnete Symbolleiste vertikal angedockt ist, positioniert diese Methode die Dropdownsymbolleiste je nach Anpassung auf der linken oder rechten Seite der übergeordneten Symbolleiste. Andernfalls positioniert diese Methode die Dropdownsymbolleiste unter der übergeordneten Symbolleiste.

Diese Methode schlägt fehl, wenn pWnd NULL ist und die Dropdownsymbolleistenschaltfläche kein übergeordnetes Fenster aufweist.

CMFCDropDownToolbarButton::ExportToMenuButton

Kopiert Text von der Symbolleistenschaltfläche in ein Menü.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Parameter

menuButton
[in] Ein Verweis auf die Zielmenüschaltfläche.

Rückgabewert

Ein Wert ungleich 0 (null), wenn die Methode erfolgreich ausgeführt wird, andernfalls 0 (null).

Hinweise

Diese Methode ruft die Basisklassenimplementierung ( CMFCToolBarButton::ExportToMenuButton) auf und fügt dann an die Zielmenüschaltfläche ein Popupmenü an, das jedes Symbolleistenmenüelement in dieser Schaltfläche enthält. Diese Methode fügt keine Untermenüs an das Popupmenü an.

Diese Methode schlägt fehl, m_pToolBarwenn die übergeordnete Symbolleiste NULL ist oder die Basisklassenimplementierung FALSCH zurückgibt.

CMFCDropDownToolbarButton::GetDropDownToolBar

Ruft die Dropdownsymbolleiste ab, die der Schaltfläche zugeordnet ist.

CMFCToolBar* GetDropDownToolBar() const;

Rückgabewert

Die Dropdownsymbolleiste, die der Schaltfläche zugeordnet ist.

Hinweise

Diese Methode gibt das m_pToolBar Datenelement zurück.

CMFCDropDownToolbarButton::IsDropDown

Bestimmt, ob die Dropdownsymbolleiste zurzeit geöffnet ist.

BOOL IsDropDown() const;

Rückgabewert

Nonzero, wenn die Dropdownsymbolleiste zurzeit geöffnet ist; andernfalls 0.

Hinweise

Das Framework öffnet die Dropdownsymbolleiste mithilfe der CMFCDropDownToolbarButton::D ropDownToolbar-Methode . Das Framework schließt die Dropdownsymbolleiste, wenn der Benutzer die linke Maustaste im Nicht-Clientbereich der Dropdownsymbolleiste drückt.

CMFCDropDownToolbarButton::IsExtraSize

Bestimmt, ob die Schaltfläche mit einem erweiterten Rahmen angezeigt werden kann.

virtual BOOL IsExtraSize() const;

Rückgabewert

Nonzero, wenn die Symbolleistenschaltfläche mit einem erweiterten Rahmen angezeigt werden kann; andernfalls 0.

Hinweise

Weitere Informationen zu erweiterten Rahmen finden Sie unter CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Gibt an, wie lange ein Benutzer die Maustaste gedrückt halten muss, bevor die Dropdownsymbolleiste angezeigt wird.

static UINT m_uiShowBarDelay;

Hinweise

Die Verzögerungszeit wird in Millisekunden gemessen. Der Standardwert ist 500. Sie können eine weitere Verzögerung festlegen, indem Sie den Wert dieses freigegebenen Datenmitglieds ändern.

CMFCDropDownToolbarButton::OnCalculateSize

Wird vom Framework aufgerufen, um die Größe der Schaltfläche für den angegebenen Gerätekontext und Andockzustand zu berechnen.

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

Parameter

pDC
[in] Der Gerätekontext, der die Schaltfläche anzeigt.

sizeDefault
[in] Die Standardgröße der Schaltfläche.

bHorz
[in] Der Dockstatus der übergeordneten Symbolleiste. Dieser Parameter ist TRUE, wenn die Symbolleiste horizontal angedockt oder unverankert ist, oder FALSE, wenn die Symbolleiste vertikal angedockt wird.

Rückgabewert

Eine SIZE Struktur, die die Abmessungen der Schaltfläche in Pixel enthält.

Hinweise

Diese Methode erweitert die Implementierung der Basisklasse ( CMFCToolBarButton::OnCalculateSize) durch Hinzufügen der Breite des Dropdownpfeils zur horizontalen Dimension der Schaltflächengröße.

CMFCDropDownToolbarButton::OnChangeParentWnd

Wird vom Framework aufgerufen, wenn die Schaltfläche in eine neue Symbolleiste eingefügt wird.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parameter

pWndParent
[in] Das neue übergeordnete Fenster.

Hinweise

Diese Methode überschreibt die Implementierung der Basisklasse ( CMFCToolBarButton::OnChangeParentWnd) durch Löschen der Textbeschriftung ( CMFCToolBarButton::m_strText) und Festlegen der CMFCToolBarButton::m_bText und CMFCToolBarButton::m_bUserButton Datenmmber auf FALSE.

CMFCDropDownToolbarButton::OnClick

Wird vom Framework aufgerufen, wenn der Benutzer auf die Maustaste klickt.

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

Parameter

pWnd
[in] Das übergeordnete Fenster der Symbolleistenschaltfläche.

bDelay
[in] TRUE, wenn die Nachricht mit verzögerungsverzögert behandelt werden soll.

Rückgabewert

Nonzero, wenn die Schaltfläche die Klicknachricht verarbeitet; andernfalls 0.

Hinweise

Diese Methode erweitert die Basisklassenimplementierung CMFCToolBarButton::OnClick, indem der Status der Dropdownsymbolleiste aktualisiert wird.

Wenn ein Benutzer auf die Symbolleistenschaltfläche klickt, erstellt diese Methode einen Timer, der die vom CMFCDropDownToolbarButton::m_uiShowBarDelay-Datenelement angegebene Zeit wartet und dann die Dropdownsymbolleiste mithilfe der CMFCDropDownToolbarButton::D ropDownToolbarButton::D ropDownToolbar-Methode öffnet. Diese Methode schließt die Dropdownsymbolleiste, wenn der Benutzer das zweite Mal auf die Symbolleistenschaltfläche klickt.

CMFCDropDownToolbarButton::OnClickUp

Wird vom Framework aufgerufen, wenn der Benutzer die Maustaste loslässt.

virtual BOOL OnClickUp();

Rückgabewert

Nonzero, wenn die Schaltfläche die Klicknachricht verarbeitet; andernfalls 0.

Hinweise

Diese Methode erweitert die Basisklassenimplementierung CMFCToolBarButton::OnClickUp, indem der Status der Dropdownsymbolleiste aktualisiert wird.

Diese Methode stoppt den Timer der Dropdownsymbolleiste, wenn sie aktiv ist. Wenn sie geöffnet ist, wird die Dropdownsymbolleiste geschlossen.

Weitere Informationen zur Dropdownsymbolleiste und zum Timer der Dropdownsymbolleiste finden Sie unter CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Wird vom Framework aufgerufen, wenn die übergeordnete Symbolleiste eine WM_HELPHITTEST Nachricht behandelt.

virtual BOOL OnContextHelp(CWnd* pWnd);

Parameter

pWnd
[in] Das übergeordnete Fenster der Symbolleistenschaltfläche.

Rückgabewert

Nonzero, wenn die Schaltfläche die Hilfenachricht verarbeitet; andernfalls 0.

Hinweise

Diese Methode erweitert die Basisklassenimplementierung ( CMFCToolBarButton::OnContextHelp), indem die CMFCDropDownToolbarButton::OnClick-Methode aufgerufen wird, wobei bDelay auf FALSE festgelegt ist. Diese Methode gibt den Wert zurück, der von CMFCDropDownToolbarButton::OnClick zurückgegeben wird.

Weitere Informationen zur WM_HELPHITTEST Nachricht finden Sie unter TN028: Unterstützung für kontextbezogene Hilfe.

CMFCDropDownToolbarButton::OnCustomizeMenu

Ändert das bereitgestellte Menü, wenn die Anwendung ein Kontextmenü auf der übergeordneten Symbolleiste anzeigt.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Parameter

pMenu
[in] Das anzupassende Menü.

Rückgabewert

Diese Methode gibt TRUE zurück.

Hinweise

Diese Methode erweitert die Basisklassenimplementierung ( CMFCToolBarButton::OnCustomizeMenu) durch Deaktivieren der folgenden Menüelemente:

  • Schaltflächensymbol kopieren

  • Schaltflächendarstellung

  • Image

  • Text

  • Bild und Text

Überschreiben Sie diese Methode, um das Kontextmenü zu ändern, das vom Framework im Anpassungsmodus angezeigt wird.

CMFCDropDownToolbarButton::OnDraw

Wird vom Framework aufgerufen, um die Schaltfläche mithilfe der angegebenen Stile und Optionen zu zeichnen.

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);

Parameter

pDC
[in] Der Gerätekontext, der die Schaltfläche anzeigt.

Rect
[in] Das umgebende Rechteck der Schaltfläche.

pImages
[in] Die Sammlung von Symbolleistenbildern, die der Schaltfläche zugeordnet sind.

bHorz
[in] Der Dockstatus der übergeordneten Symbolleiste. Dieser Parameter ist TRUE, wenn die Schaltfläche horizontal angedockt wird und FALSE, wenn die Schaltfläche vertikal angedockt wird.

bCustomizeMode
[in] Gibt an, ob sich die Symbolleiste im Anpassungsmodus befindet. Dieser Parameter ist TRUE, wenn sich die Symbolleiste im Anpassungsmodus und FALSE befindet, wenn sich die Symbolleiste nicht im Anpassungsmodus befindet.

bHighlight
[in] Gibt an, ob die Schaltfläche hervorgehoben ist. Dieser Parameter ist TRUE, wenn die Schaltfläche hervorgehoben ist und FALSE, wenn die Schaltfläche nicht hervorgehoben ist.

bDrawBorder
[in] Gibt an, ob die Schaltfläche ihren Rahmen anzeigen soll. Dieser Parameter ist TRUE, wenn die Schaltfläche ihren Rahmen und FALSE anzeigen soll, wenn die Schaltfläche den Rahmen nicht anzeigen soll.

bGrayDisabledButtons
[in] Gibt an, ob deaktivierte Schaltflächen schattieren oder die sammlung deaktivierter Bilder verwendet werden soll. Dieser Parameter ist TRUE, wenn deaktivierte Schaltflächen schattiert werden sollen, und FALSE, wenn diese Methode die deaktivierte Bildersammlung verwenden soll.

Hinweise

Überschreiben Sie diese Methode, um die Zeichnung von Symbolleistenschaltflächen anzupassen.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Wird vom Framework aufgerufen, um die Schaltfläche im Befehlsbereich des Dialogfelds Anpassen zu zeichnen.

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

Parameter

pDC
[in] Der Gerätekontext, der die Schaltfläche anzeigt.

Rect
[in] Das umgebende Rechteck der Schaltfläche.

bSelected
[in] Gibt an, ob die Schaltfläche ausgewählt ist. Wenn dieser Parameter TRUE ist, wird die Schaltfläche ausgewählt. Wenn dieser Parameter FALSCH ist, ist die Schaltfläche nicht ausgewählt.

Rückgabewert

Die Breite der Schaltfläche im angegebenen Gerätekontext in Pixeln.

Hinweise

Diese Methode wird vom Dialogfeld zum Anpassen ( Befehlsregisterkarte ) aufgerufen, wenn die Schaltfläche erforderlich ist, um sich im Listenfeld "Besitzer zeichnen" anzuzeigen.

Diese Methode erweitert die Basisklassenimplementierung ( CMFCToolBarButton::OnDrawOnCustomizeList) durch Ändern der Textbeschriftung der Schaltfläche auf den Namen der Schaltfläche (d. a. zum Wert des lpszName-Parameters , den Sie an den Konstruktor übergeben haben).

CMFCDropDownToolbarButton::Serialize

Liest dieses Objekt aus einem Archiv oder schreibt es in ein Archiv.

virtual void Serialize(CArchive& ar);

Parameter

Ar
[in] Das CArchive Objekt, von dem bzw. von dem aus serialisiert werden soll.

Hinweise

Diese Methode erweitert die Implementierung der Basisklasse ( CMFCToolBarButton::Serialize) durch Serialisieren der Ressourcen-ID der übergeordneten Symbolleiste. Wenn das Archiv geladen wird ( CArchive::IsLoading gibt einen Wert ungleich Null) zurück, legt diese Methode das m_pToolBar Datenelement auf die Symbolleiste fest, die die serialisierte Ressourcen-ID enthält.

CMFCDropDownToolbarButton::SetDefaultCommand

Legt den Standardbefehl fest, den das Framework verwendet, wenn ein Benutzer auf die Schaltfläche klickt.

void SetDefaultCommand(UINT uiCmd);

Parameter

uiCmd
[in] Die ID des Standardbefehls.

Hinweise

Rufen Sie diese Methode auf, um einen Standardbefehl anzugeben, den das Framework ausführt, wenn der Benutzer auf die Schaltfläche klickt. Ein Element mit der von uiCmd angegebenen Befehls-ID muss sich in der übergeordneten Dropdownsymbolleiste befinden.

Siehe auch

Hierarchiediagramm
Klassen
CMFCDropDownToolBar-Klasse
CMFCToolBar-Klasse
CMFCToolBarMenuButton-Klasse
Exemplarische Vorgehensweise: Steuerelemente in eine Symbolleiste einfügen