CMFCPopupMenu-Klasse

Implementiert die Funktionalität eines Windows-Popupmenüs und erweitert sie durch zusätzliche Funktionen wie abtrennbare Menüs und QuickInfos. Weitere Details finden Sie im Quellcode im Ordner VC\atlmfc\src\mfc Ihrer Visual Studio-Installation.

Syntax

class CMFCPopupMenu : public CMiniFrameWnd

Member

Geschützte Konstruktoren

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

Öffentliche Methoden

Name Beschreibung
CMFCPopupMenu::ActivatePopupMenu
CMFCPopupMenu::AlwaysShowEmptyToolsEntry Legt fest, ob ein Popupmenü aktiviert ist, um leere Einträge für benutzerdefinierte Tools anzuzeigen.
CMFCPopupMenu::AreAllCommandsShown
CMFCPopupMenu::CheckArea Bestimmt die Position eines Punkts relativ zum Popupmenü.
CMFCPopupMenu::CloseMenu
CMFCPopupMenu::Create Erstellt ein Popupmenü und fügt es an das CMFCPopupMenu Objekt an.
CMFCPopupMenu::D efaultMouseClickOnClose
CMFCPopupMenu::EnableMenuLogo Initialisiert das Logo für ein Popupmenü.
CMFCPopupMenu::EnableMenuSound Aktiviert Menüsound.
CMFCPopupMenu::EnableResize
CMFCPopupMenu::EnableScrolling
CMFCPopupMenu::EnableVertResize
CMFCPopupMenu::FindSubItemByCommand
CMFCPopupMenu::GetActiveMenu Gibt das derzeit aktive Menü zurück.
CMFCPopupMenu::GetAnimationSpeed Gibt die Animationsgeschwindigkeit für Popupmenüs zurück.
CMFCPopupMenu::GetAnimationType Gibt den aktuellen Typ der Popupmenüanimation zurück.
CMFCPopupMenu::GetDropDirection
CMFCPopupMenu::GetForceMenuFocus Gibt an, ob der Fokus auf der Menüleiste zurückgegeben wird, wenn ein Popupmenü angezeigt wird.
CMFCPopupMenu::GetForceShadow
CMFCPopupMenu::GetHMenu Gibt ein Handle an die ressource des angefügten Menüs zurück.
CMFCPopupMenu::GetMenuBar Gibt die CMFCPopupMenuBar zurück, die im Popupmenü eingebettet ist.
CMFCPopupMenu::GetMenuItem Gibt einen Zeiger auf das Menüelement am angegebenen Index zurück.
CMFCPopupMenu::GetMenuItemCount Gibt die Anzahl der Elemente in einem Popupmenü zurück.
CMFCPopupMenu::GetMessageWnd Gibt einen Zeiger auf das Fenster zurück, in dem das Framework die Popupmenünachrichten weitergibt.
CMFCPopupMenu::GetParentArea
CMFCPopupMenu::GetParentButton Gibt einen Zeiger auf die übergeordnete Symbolleistenschaltfläche zurück.
CMFCPopupMenu::GetParentPopupMenu Gibt einen Zeiger auf das übergeordnete Popupmenü zurück.
CMFCPopupMenu::GetParentRibbonElement
CMFCPopupMenu::GetParentToolBar Gibt einen Zeiger auf die übergeordnete Symbolleiste zurück.
CMFCPopupMenu::GetQuickCustomizeType
CMFCPopupMenu::GetSelItem Gibt einen Zeiger auf den aktuell ausgewählten Menübefehl zurück.
CMFCPopupMenu::HasBeenResized
CMFCPopupMenu::HideRarelyUsedCommands Gibt an, ob das Popupmenü selten verwendete Befehle ausblenden kann.
CMFCPopupMenu::InCommand
CMFCPopupMenu::InsertItem Fügt an der angegebenen Position ein neues Element in das Popupmenü ein.
CMFCPopupMenu::InsertSeparator Fügt an der angegebenen Position ein Trennzeichen in das Popupmenü ein.
CMFCPopupMenu::IsAlwaysClose
CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry
CMFCPopupMenu::IsCustomizePane Gibt an, ob das Popupmenü als QuickCustomizePane funktioniert.
CMFCPopupMenu::IsEscClose
CMFCPopupMenu::IsIdle Gibt an, ob sich derzeit ein Popupmenü im Leerlauf befindet.
CMFCPopupMenu::IsMenuSound
CMFCPopupMenu::IsQuickCustomize Bestimmt, ob sich die zugeordnete CMFCToolBarMenuButton-Klasse im QuickCustomize-Modus befindet.
CMFCPopupMenu::IsResizeble
CMFCPopupMenu::IsRightAlign Gibt an, ob das Menü rechtsbündig oder linksbündig ausgerichtet ist.
CMFCPopupMenu::IsScrollable
CMFCPopupMenu::IsSendMenuSelectMsg Gibt an, ob das Framework den übergeordneten Frame benachrichtigt, wenn der Benutzer im Popupmenü einen Befehl auswählt.
CMFCPopupMenu::IsShown Gibt an, ob das Popupmenü zurzeit sichtbar ist.
CMFCPopupMenu::MoveTo
CMFCPopupMenu::OnCmdMsg (Überschreibt CFrameWnd::OnCmdMsg.)
CMFCPopupMenu::P ostCommand
CMFCPopupMenu::P reTranslateMessage (Überschreibt CFrameWnd::PreTranslateMessage.)
CMFCPopupMenu::RecalcLayout Wird vom Framework aufgerufen, wenn die Standardsteuerelementleisten ein- oder ausgeschaltet werden oder wenn die Größe des Rahmenfensters geändert wird. (Außerkraftsetzungen CFrameWnd::RecalcLayout.)
CMFCPopupMenu::RemoveAllItems Löscht alle Elemente aus einem Popupmenü.
CMFCPopupMenu::RemoveItem Entfernt das angegebene Element aus einem Popupmenü.
CMFCPopupMenu::SaveState
CMFCPopupMenu::SetAnimationSpeed Legt die Animationsgeschwindigkeit für Popupmenüs fest.
CMFCPopupMenu::SetAnimationType Legt den Animationstyp für das Popupmenü fest.
CMFCPopupMenu::SetAutoDestroy
CMFCPopupMenu::SetDefaultItem Legt den Standardbefehl für das Popupmenü fest.
CMFCPopupMenu::SetForceMenuFocus Erzwingt, dass der Eingabefokus zur Menüleiste zurückkehrt, wenn ein Popupmenü angezeigt wird.
CMFCPopupMenu::SetForceShadow Erzwingt das Framework, Menüschatten zu zeichnen, wenn Popupmenüs außerhalb des Standard Frames angezeigt werden.
CMFCPopupMenu::SetMaxWidth Legen Sie die maximale Breite für das Popupmenü fest.
CMFCPopupMenu::SetMessageWnd
CMFCPopupMenu::SetParentRibbonElement
CMFCPopupMenu::SetQuickCustomizeType
CMFCPopupMenu::SetQuickMode
CMFCPopupMenu::SetRightAlign Legt die Menüausrichtung für Popupmenüs fest.
CMFCPopupMenu::SetSendMenuSelectMsg Legt ein Flag fest, das steuert, ob das Popupmenü den übergeordneten Frame benachrichtigt, wenn der Benutzer einen Befehl auswählt.
CMFCPopupMenu::ShowAllCommands Erzwingt das Popupmenü, um alle Befehle anzuzeigen.
CMFCPopupMenu::TriggerResize
CMFCPopupMenu::UpdateAllShadows Aktualisiert die Schatten für alle geöffneten Popupmenüs.
CMFCPopupMenu::UpdateShadow Aktualisiert den Schatten für das Popupmenü.

Geschützte Methoden

Name Beschreibung
CMFCPopupMenu::CreateTearOffBar
CMFCPopupMenu::OnChangeHot
CMFCPopupMenu::OnChooseItem

Hinweise

Normalerweise erstellt MFC Popupmenüs automatisch. Wenn Sie ein CMFCPopupMenu Objekt manuell erstellen möchten, weisen Sie ein Objekt im Heap zu, und rufen Sie dann CMFCPopupMenu::Create auf.

Beispiel

Im folgenden Beispiel wird das Konfigurieren eines Popupmenüobjekts veranschaulicht. Das Beispiel zeigt, wie Sie das Logo und den Sound des Popupmenüs festlegen, die Animationsgeschwindigkeit und den Typ festlegen, Menüschatten zeichnen, wenn das Popupmenü außerhalb des Standard Frames angezeigt wird, die maximale Breite festlegen und die rechte Menüausrichtung des Popupmenüs festlegen. Dieser Codeausschnitt ist Teil des Beispiels "Benutzerdefinierte Seiten".

// 30 is the size of the logo in pixels.
pPopupMenu->EnableMenuLogo(30);
pPopupMenu->EnableMenuSound();
// 500 is the animation speed in milliseconds.
pPopupMenu->SetAnimationSpeed(500);
pPopupMenu->SetAnimationType(CMFCPopupMenu::SLIDE);
pPopupMenu->SetForceShadow(true);
// 200 is the maximum width of the pop-up menu in pixels.
pPopupMenu->SetMaxWidth(200);
pPopupMenu->SetRightAlign();
pPopupMenu->InsertSeparator();

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CFrameWnd

CMiniFrameWnd

CMFCPopupMenu

Anforderungen

Kopfzeile: afxpopupmenu.h

CMFCPopupMenu::ActivatePopupMenu

static BOOL __stdcall ActivatePopupMenu(
    CFrameWnd* pTopFrame,
    CMFCPopupMenu* pPopupMenu);

Parameter

[in] pTopFrame
[in] pPopupMenu

Rückgabewert

Bemerkungen

CMFCPopupMenu::AlwaysShowEmptyToolsEntry

Legt fest, ob ein Popupmenü aktiviert ist, um leere Einträge für benutzerdefinierte Tools anzuzeigen.

static void AlwaysShowEmptyToolsEntry(BOOL bShow = TRUE);

Parameter

bShow
[in] TRUE, wenn das Popupmenü leere Einträge anzeigen kann; Andernfalls FALSE.

CMFCPopupMenu::AreAllCommandsShown

BOOL AreAllCommandsShown() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::CheckArea

Bestimmt die Position eines Punkts relativ zum Popupmenü.

MENUAREA_TYPE CheckArea(const CPoint& ptScreen) const;

Parameter

ptScreen
[in] Ein Punkt in Bildschirmkoordinaten.

Rückgabewert

Ein MENUAREA_TYPE-Parameter, der angibt, wo sich der Punkt relativ zum Popupmenü befindet.

Hinweise

Ein MENUAREA_TYPE-Parameter kann einen der folgenden Werte aufweisen.

  • OUTSIDE - ptScreen befindet sich außerhalb des Popupmenüs.

  • LOGO - ptScreen befindet sich über einem Logobereich.

  • TEAROFF_CAPTION - ptScreen liegt über dem abreißenden Untertitel.

  • SHADOW_BOTTOM - ptScreen befindet sich über dem unteren Schatten des Popupmenüs.

  • SHADOW_RIGHT - ptScreen befindet sich über dem rechten Schatten des Popupmenüs.

  • MENU - ptScreen befindet sich über einem Befehl.

CMFCPopupMenu::CloseMenu

void CloseMenu(BOOL bSetFocusToBar = FALSE);

Parameter

[in] bSetFocusToBar

Hinweise

CMFCPopupMenu::CMFCPopupMenu

Erstellt ein CMFCPopupMenu -Objekt.

CMFCPopupMenu(
    CMFCToolBarsMenuPropertyPage* pCustPage,
    LPCTSTR lpszTitle);

Parameter

pCustPage
[in] Ein Zeiger auf eine Anpassungsseite.

lpszTitle
[in] Eine Zeichenfolge, die das Menü Untertitel enthält.

Hinweise

Diese Methode weist die Ressourcen für ein CMFCPopupMenu. Rufen Sie ZUM Erstellen des Popupmenüelements CMFCPopupMenu::Create auf.

CMFCPopupMenu::Create

Erstellt ein Popupmenü und fügt es an ein CMFCPopupMenu -Objekt an.

virtual BOOL Create(
    CWnd* pWndParent,
    int x,
    int y,
    HMENU hMenu,
    BOOL bLocked = FALSE,
    BOOL bOwnMessage = FALSE);

Parameter

pWndParent
[in] Das übergeordnete Fenster für das CMFCPopupMenu.

x
[in] Die horizontale Bildschirmkoordinate für die Position des Popupmenüs

y
[in] Die vertikale Bildschirmkoordinate für die Position des Popupmenüs.

Hmenu
[in] Ein Handle zu einer Menüressource.

Blockiert
[in] Ein boolescher Parameter, der angibt, ob das Menü anpassbar ist. FALSE gibt an, dass das Popupmenü anpassbar ist.

bOwnMessage
[in] Ein boolescher Parameter, der angibt, wie das Framework die Menünachrichten weitergibt. Weitere Details finden Sie im Abschnitt „Anmerkungen“.

Rückgabewert

TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Wenn bOwnMessage TRUE ist, leitet das Framework alle Menünachrichten an pWndParent weiter. pWndParent darf nicht NULL sein, wenn bOwnMessage WAHR ist. Wenn bOwnMessage FALSCH ist, leitet das Framework die Menünachrichten an das übergeordnete Popupmenü weiter.

Beispiel

Im folgenden Beispiel wird die Verwendung der Create Methode der CMFCPopuMenu Klasse veranschaulicht. Dieser Codeausschnitt ist Teil des Beispiels "Benutzerdefinierte Seiten".

CMFCPopupMenu *pPopupMenu = new CMFCPopupMenu;
// CPoint point
// CMenu* pPopup
// The this pointer points to CMainFrame class which extends the CFrameWnd class.
pPopupMenu->Create(this, point.x, point.y, pPopup->Detach());

CMFCPopupMenu::CreateTearOffBar

virtual CPane* CreateTearOffBar(
    CFrameWnd* pWndMain,
    UINT uiID,
    LPCTSTR lpszName);

Parameter

[in] pWndMain
[in] uiID
[in] lpszName

Rückgabewert

Bemerkungen

CMFCPopupMenu::D efaultMouseClickOnClose

virtual BOOL DefaultMouseClickOnClose() const;

Rückgabewert

Bemerkungen

Initialisiert das Logo für ein Popupmenü.

void EnableMenuLogo(
    int iLogoSize,
    LOGO_LOCATION nLogoLocation = MENU_LOGO_LEFT);

Parameter

iLogoSize
[in] Die Größe des Logos in Pixeln.

nLogoLocation
[in] Ein aufgezählter Datentyp, der die Position des Logos angibt.

Hinweise

Um das Logo anzuzeigen, implementieren Sie die Methode CFrameWndEx::OnDrawMenuLogo im Standard Framefenster.

Die möglichen Werte für nLogoLocation sind MENU_LOGO_LEFT, MENU_LOGO_RIGHT, MENU_LOGO_TOP und MENU_LOGO_BOTTOM.

CMFCPopupMenu::EnableMenuSound

Aktiviert Menüsound.

static void EnableMenuSound(BOOL bEnable = TRUE);

Parameter

bEnable
[in] TRUE, um Sound zu aktivieren, andernfalls FALSE.

Hinweise

Wenn Sie Sound aktivieren, ruft das Framework die PlaySound-Methode auf, wenn ein Benutzer ein Popupmenü öffnet oder einen Menübefehl auswählt. Dieses Feature ist standardmäßig aktiviert.

CMFCPopupMenu::EnableResize

void EnableResize(CSize sizeMinResize);

Parameter

[in] sizeMinResize

Hinweise

CMFCPopupMenu::EnableScrolling

void EnableScrolling(BOOL = TRUE);

Parameter

[in] BOOL

Hinweise

CMFCPopupMenu::EnableVertResize

void EnableVertResize(int nMinResize);

Parameter

[in] nMinResize

Hinweise

CMFCPopupMenu::FindSubItemByCommand

CMFCToolBarMenuButton* FindSubItemByCommand(UINT uiCmd) const;

Parameter

[in] uiCmd

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetActiveMenu

Gibt das derzeit aktive Menü zurück.

static CMFCPopupMenu* GetActiveMenu();

Rückgabewert

Ein Zeiger auf das aktive Popupmenü oder NULL, wenn derzeit kein Popupmenü aktiv ist.

Hinweise

Jede Anwendung kann höchstens über ein aktives Popupmenü verfügen.

CMFCPopupMenu::GetAnimationSpeed

Gibt die Animationsgeschwindigkeit für Popupmenüs zurück.

static UINT GetAnimationSpeed();

Rückgabewert

Eine ganze Zahl, die die Zeit in Millisekunden angibt, die eine Popupmenüanimation benötigt, um den Vorgang abzuschließen.

Hinweise

Die Animationsgeschwindigkeit ist ein globaler Wert. Verwenden Sie CMFCPopupMenu::SetAnimationSpeed , um die Animationsgeschwindigkeit für Popupmenüs zu ändern.

CMFCPopupMenu::GetAnimationType

Gibt den aktuellen Typ der Popupanimation zurück.

static CMFCPopupMenu::ANIMATION_TYPE GetAnimationType(BOOL bNoSystem = FALSE);

Parameter

bNoSystem
[in] Ein boolescher Parameter, der angibt, ob diese Methode den globalen Wert überprüft. FALSE, wenn diese Methode den Animationsstil für diese Instanz der CMFCPopupMenu-Klasse zurückgeben soll.

Rückgabewert

Ein aufgezählter Wert, der den Animationstyp beschreibt.

Hinweise

Der Animationsstil für Popupmenüs ist global für Ihre Anwendung. Verwenden Sie CMFCPopupMenu::SetAnimationType , um den Animationsstil festzulegen.

In der folgenden Tabelle sind die möglichen Animationstypen aufgeführt.

Wert Beschreibung
NO_ANIMATION Das Popupmenü ist nicht animiert und wird sofort angezeigt.
ENTFALTEN Das Framework zeigt das Popupmenü von der oberen linken Ecke zur unteren rechten Ecke an.
FOLIE Das Popupmenü wechselt von oben nach unten.
VERBLASSEN Das Popupmenü erscheint zunächst transparent und wird schrittweise einfarbig.

CMFCPopupMenu::GetDropDirection

DROP_DIRECTION GetDropDirection() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetForceMenuFocus

Gibt an, ob der Fokus auf der Menüleiste zurückgegeben wird, wenn ein Popupmenü angezeigt wird.

static BOOL GetForceMenuFocus();

Rückgabewert

TRUE, wenn der Eingabefokus auf die Menüleiste zurückgegeben wird, wenn ein Popupmenü angezeigt wird; FALSE, wenn das Popupmenü den Fokus behält.

Hinweise

Standardmäßig gibt Ihre Anwendung den Fokus nicht auf die Menüleiste zurück. Um diese Einstellung zu ändern, verwenden Sie CMFCPopupMenu::SetForceMenuFocus.

CMFCPopupMenu::GetForceShadow

static BOOL __stdcall GetForceShadow();

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetHMenu

Gibt ein Handle an die ressource des angefügten Menüs zurück.

HMENU GetHMenu();

CMFCPopupMenu::GetMenuBar

Gibt die CMFCPopupMenuBar zurück, die im Popupmenü eingebettet ist.

virtual CMFCPopupMenuBar* GetMenuBar();

Rückgabewert

Ein Zeiger auf das eingebettete CMFCPopupMenuBarElement.

Hinweise

Das Popupmenü verfügt über ein eingebettetes CMFCPopupMenuBar Objekt. Sie müssen diese Methode in einer abgeleiteten Klasse überschreiben, wenn Sie eine andere eingebettete Klasse verwenden.

CMFCPopupMenu::GetMenuItem

Gibt einen Zeiger auf das Menüelement am angegebenen Index zurück.

CMFCToolBarMenuButton* GetMenuItem(int iIndex) const;

Parameter

iIndex
[in] Der nullbasierte Index eines Menüelements.

Rückgabewert

Ein Zeiger auf ein Menüelement. NULL, wenn der Index ungültig ist.

Hinweise

Menüelemente werden durch die CMFCToolBarMenuButton-Klasse dargestellt. Wenn Sie diese Methode aufrufen, wird ein Zeiger auf die entsprechende CMFCToolBarMenuButtonMethode zurückgegeben.

CMFCPopupMenu::GetMenuItemCount

Gibt die Anzahl der Elemente in einem Popupmenü zurück.

int GetMenuItemCount() const;

Rückgabewert

Die Anzahl der Elemente im Menü.

CMFCPopupMenu::GetMessageWnd

Gibt einen Zeiger auf das Fenster zurück, in dem das Framework die Popupmenünachrichten weitergibt.

CWnd* GetMessageWnd() const;

Rückgabewert

Ein Zeiger auf das Fenster, das die Popupmenünachrichten empfängt; NULL, wenn kein Fenster vorhanden ist.

Hinweise

Wenn Sie die Methode CMFCPopupMenu::Create zum Erstellen eines Popupmenüs verwenden, geben Sie an, welches Fenster die Menümeldungen empfängt.

CMFCPopupMenu::GetParentArea

virtual CWnd* GetParentArea(CRect& rectParentBtn);

Parameter

[in] rectParentBtn

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetParentButton

Gibt einen Zeiger auf die übergeordnete Symbolleistenschaltfläche zurück.

CMFCToolBarMenuButton* GetParentButton() const;

Rückgabewert

Ein Zeiger auf die übergeordnete Symbolleistenschaltfläche. NULL, wenn das Popupmenü keine übergeordnete Symbolleistenschaltfläche enthält.

Hinweise

Eine CMFCPopupMenu kann einer Schaltfläche im Menü zugeordnet werden. In diesem Szenario wird das Popupmenü angezeigt, wenn ein Benutzer die übergeordnete Symbolleistenschaltfläche auswählt.

Wenn das Popupmenü ein Kontextmenü ist, enthält es keine übergeordnete Symbolleistenschaltfläche.

CMFCPopupMenu::GetParentPopupMenu

Gibt einen Zeiger auf das übergeordnete Popupmenü zurück.

CMFCPopupMenu* GetParentPopupMenu() const;

Rückgabewert

Ein Zeiger auf das übergeordnete CMFCPopupMenu Objekt; NULL, wenn kein übergeordnetes Popupmenü vorhanden ist.

Hinweise

Ein Popupmenü verfügt nur über ein übergeordnetes CMFCPopupMenu Objekt, wenn es sich um ein Untermenü handelt.

CMFCPopupMenu::GetParentRibbonElement

CMFCRibbonBaseElement* GetParentRibbonElement() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetParentToolBar

Gibt einen Zeiger auf die übergeordnete Symbolleiste zurück.

CMFCToolBar* GetParentToolBar() const;

Rückgabewert

Ein Zeiger auf die übergeordnete Symbolleiste. NULL, wenn das Popupmenü keine übergeordnete Symbolleiste aufweist.

Hinweise

Wenn es sich um CMFCPopupMenu ein Kontextmenü handelt, verfügt es über keine übergeordnete Symbolleiste.

CMFCPopupMenu::GetQuickCustomizeType

QUICK_CUSTOMIZE_TYPE GetQuickCustomizeType() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::GetSelItem

Gibt einen Zeiger auf den aktuell ausgewählten Menübefehl zurück.

CMFCToolBarMenuButton* GetSelItem();

Rückgabewert

Ein Zeiger auf den aktuell ausgewählten Menübefehl; NULL, wenn kein Element ausgewählt ist.

Hinweise

Die Menübefehle in einem Popupmenü werden durch die CMFCToolBarMenuButton-Klasse oder eine von der Klasse abgeleitete CMFCToolBarMenuButtonKlasse dargestellt.

CMFCPopupMenu::HasBeenResized

BOOL HasBeenResized() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::HideRarelyUsedCommands

Gibt an, ob das Popupmenü selten verwendete Befehle ausblenden kann.

BOOL HideRarelyUsedCommands() const;

Rückgabewert

TRUE, wenn das Popupmenü die selten verwendeten Befehle ausblenden kann; andernfalls FALSE.

Hinweise

Diese Methode gibt nur an, ob ein Popupmenü selten verwendete Befehle ausblenden kann, nicht, wenn diese Konfiguration aktiviert ist. Ein Popupmenü kann selten verwendete Befehle ausblenden, wenn es über eine übergeordnete Schaltfläche verfügt und das übergeordnete Fenster von der CMFCMenuBar-Klasse abgeleitet wird. Verwenden Sie CMFCMenuBar::SetRecentlyUsedMenus , um dieses Feature und CMFCMenuBar::IsRecentlyUsedMenus zu aktivieren, um festzustellen, ob dieses Feature derzeit aktiviert ist. Sie müssen beide Methoden für das übergeordnete Fenster aufrufen.

CMFCPopupMenu::InCommand

virtual BOOL InCommand();

Rückgabewert

Bemerkungen

CMFCPopupMenu::InsertItem

Fügt an der angegebenen Position ein neues Element in das Popupmenü ein.

int InsertItem(
    const CMFCToolBarMenuButton& button,
    int iInsertA = -1);

Parameter

Schaltfläche
[in] Ein Verweis auf das hinzuzufügende Menüelement.

iInsertAt
[in] Der nullbasierte Index für das neue Element. Wenn iInsertAt -1 ist, wird das Element am Ende des Menüs hinzugefügt.

Rückgabewert

Der nullbasierte Index der Position, an der das Element eingefügt wurde. -1, wenn die Methode fehlschlägt.

Hinweise

Diese Methode schlägt fehl, wenn Sie einen ungültigen Wert für iInsertAt angeben, z. B. eine ganze Zahl, die größer ist als die Anzahl der Elemente, die sich derzeit im Popupmenü befindet.

CMFCPopupMenu::InsertSeparator

Fügt an der angegebenen Position ein Trennzeichen in das Popupmenü ein.

int InsertSeparator(int iInsertAt = -1);

Parameter

iInsertAt
[in] Der nullbasierte Index der Position, an der diese Methode das Trennzeichen einfügt.

Rückgabewert

Der nullbasierte Index der Position, an der das Trennzeichen eingefügt wurde. -1, wenn diese Methode fehlschlägt.

Hinweise

Ein Wert von -1 für iInsertAt bedeutet, dass diese Methode das Trennzeichen am Ende des Popupmenüs hinzufüge.

Diese Methode schlägt fehl, wenn iInsertAt ein ungültiger Wert ist.

CMFCPopupMenu::IsAlwaysClose

virtual BOOL IsAlwaysClose() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry

static BOOL __stdcall IsAlwaysShowEmptyToolsEntry();

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsCustomizePane

Gibt an, ob das Popupmenü als QuickCustomizePane funktioniert.

BOOL IsCustomizePane();

Rückgabewert

TRUE, wenn das Popup ein QuckCustomizePane ist; andernfalls FALSE.

Hinweise

Verwenden Sie QuickCustomizePane, um dem Benutzer die direkte Anpassung des Popupmenüs zu ermöglichen. Der QuickCustomizePane ist ein CMFCPopupMenu Element, das angezeigt wird, wenn der Benutzer auf eine Symbolleistenschaltfläche klickt, um ihn direkt zu bearbeiten.

Ihre Anwendung sollte diese Methode während cmDIFrameWndEx ::OnShowCustomizePane aufrufen.

CMFCPopupMenu::IsEscClose

BOOL IsEscClose();

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsIdle

Gibt an, ob sich derzeit ein Popupmenü im Leerlauf befindet.

virtual BOOL IsIdle() const;

Rückgabewert

TRUE, wenn sich das Popupmenü im Leerlaufmodus befindet; andernfalls FALSE.

Hinweise

Standardmäßig befindet sich ein Popupmenü im Leerlaufmodus, wenn die Anzeigeanimation abgeschlossen ist und der Benutzer nicht im Popupmenü scrollt.

CMFCPopupMenu::IsMenuSound

static UINT __stdcall IsMenuSound();

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsQuickCustomize

Bestimmt, ob sich die zugeordnete CMFCToolBarMenuButton-Klasse im QuickCustomize-Modus befindet.

BOOL IsQuickCustomize();

Rückgabewert

TRUE, wenn sich die zugeordnete Menüschaltfläche im QuickCustomize-Modus befindet; andernfalls FALSE. Diese Methode gibt auch FALSE zurück, wenn das Popupmenü keinem CMFCToolBarMenuButtonzugeordnet ist.

Hinweise

Im QuickCustomize-Modus wählt der Benutzer eine Schaltfläche auf einer Symbolleiste aus, um die Schaltfläche direkt anzupassen.

CMFCPopupMenu::IsResizeble

BOOL IsResizeble() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsRightAlign

Gibt an, ob das Menü rechtsbündig oder linksbündig ausgerichtet ist.

BOOL IsRightAlign() const;

Rückgabewert

TRUE, wenn das Menü rechtsbündig ausgerichtet ist; FALSE, wenn das Menü linksbündig ausgerichtet ist.

Hinweise

Sie können CMFCPopupMenu::SetRightAlign verwenden, um die Menüausrichtung festzulegen. Popupmenüs verwenden standardmäßig linksbündig.

Die Menüausrichtung ist keine globale Einstellung und kann zwischen Popupmenüs variieren.

CMFCPopupMenu::IsScrollable

BOOL IsScrollable() const;

Rückgabewert

Bemerkungen

CMFCPopupMenu::IsSendMenuSelectMsg

Gibt an, ob das Framework den übergeordneten Frame benachrichtigt, wenn der Benutzer im Popupmenü einen Befehl auswählt.

static BOOL IsSendMenuSelectMsg();

Rückgabewert

TRUE, wenn das Framework den übergeordneten Frame benachrichtigt; andernfalls FALSE.

Hinweise

Das Framework benachrichtigt den übergeordneten Frame, indem er die WM_MENUSELECT Nachricht sendet, wenn ein verwendeter Befehl einen Menübefehl auswählt.

CMFCPopupMenu::IsShown

Gibt an, ob das Popupmenü zurzeit sichtbar ist.

BOOL IsShown() const;

Rückgabewert

TRUE, wenn ein Popupmenü sichtbar ist; andernfalls FALSE.

CMFCPopupMenu::MoveTo

void MoveTo(const CPoint& pt);

Parameter

[in] Pt

Hinweise

CMFCPopupMenu::OnChangeHot

virtual void OnChangeHot(int nHot);

Parameter

[in] nHot

Hinweise

CMFCPopupMenu::OnChooseItem

virtual void OnChooseItem(UINT uidCmdID);

Parameter

[in] uidCmdID

Hinweise

CMFCPopupMenu::OnCmdMsg

virtual BOOL OnCmdMsg(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

Parameter

[in] Nid
[in] nCode
[in] pExtra
[in] pHandlerInfo

Rückgabewert

Bemerkungen

CMFCPopupMenu::P ostCommand

BOOL PostCommand(UINT uiCommandID);

Parameter

[in] uiCommandID

Rückgabewert

Bemerkungen

CMFCPopupMenu::P reTranslateMessage

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parameter

[in] pMsg

Rückgabewert

Bemerkungen

CMFCPopupMenu::RecalcLayout

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parameter

[in] bNotify

Hinweise

CMFCPopupMenu::RemoveAllItems

Löscht alle Elemente aus einem Popupmenü.

void RemoveAllItems();

CMFCPopupMenu::RemoveItem

Entfernt das angegebene Element aus dem Popupmenü.

BOOL RemoveItem(int iIndex);

Parameter

iIndex
[in] Der nullbasierte Index des zu löschenden Elements.

Rückgabewert

TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Diese Methode ordnet automatisch alle Trennzeichen an, die von der Entfernung eines Elements betroffen sind. Weitere Informationen dazu, wie das Framework Trennzeichen neu anordnet, finden Sie unter CMFCToolBar::RemoveButton.

CMFCPopupMenu::SaveState

virtual void SaveState();

Hinweise

CMFCPopupMenu::SetAnimationSpeed

Legt die Animationsgeschwindigkeit für Popupmenüs fest.

static void SetAnimationSpeed(UINT nElapse);

Parameter

nElapse
[in] Die neue Animationsgeschwindigkeit in Millisekunden.

Hinweise

Die Animationsgeschwindigkeit ist ein globaler Wert und wirkt sich auf alle Popupmenüs in der Anwendung aus. Dieser Wert gibt an, wie lange es dauert, bis die Animation für ein Popupmenü abgeschlossen ist.

Dieser Parameter ist standardmäßig auf 30 Millisekunden festgelegt. Der Bereich gültiger Werte für "nElapse " liegt zwischen 0 und 200.

CMFCPopupMenu::SetAnimationType

Legt den Animationstyp für dieses Popupmenü fest.

static void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parameter

type
[in] Ein aufgezählter Datentyp, der den Animationstyp angibt.

Hinweise

Eine Liste gültiger Werte für den Typ finden Sie unter CMFCPopupMenu::GetAnimationType.

CMFCPopupMenu::SetAutoDestroy

void SetAutoDestroy(BOOL bAutoDestroy = TRUE);

Parameter

[in] bAutoDestroy

Hinweise

CMFCPopupMenu::SetDefaultItem

Legt den Standardbefehl für das Popupmenü fest.

void SetDefaultItem(UINT uiCmd);

Parameter

uiCmd
[in] Die Menübefehls-ID des neuen Standardbefehls.

Hinweise

Der Standardbefehl im Popupmenü ist der Befehl, der ausgewählt wird, wenn das Popupmenü angezeigt wird.

CMFCPopupMenu::SetForceMenuFocus

Erzwingt, dass der Eingabefokus zur Menüleiste zurückkehrt, wenn ein Popupmenü angezeigt wird.

static void SetForceMenuFocus(BOOL bValue);

Parameter

bValue
[in] TRUE, wenn das Framework den Eingabefokus auf die Menüleiste erzwingen soll, wenn ein Popupmenü angezeigt wird. FALSE, wenn das Popupmenü den Fokus behalten soll.

Hinweise

Diese Methode legt ein Flag fest, das für alle Popupmenüs in der Anwendung global ist. Dieses Feature ist standardmäßig nicht aktiviert.

CMFCPopupMenu::SetForceShadow

Erzwingt das Framework, Menüschatten zu zeichnen, wenn Popupmenüs außerhalb des Standard Frames angezeigt werden.

static void SetForceShadow(BOOL bValue);

Parameter

bValue
[in] TRUE, wenn das Framework Menüschatten zeichnen soll, andernfalls FALSE.

Hinweise

Wenn Sie diese Methode aufrufen, wird ein globales Flag in Ihrer Anwendung festgelegt. Dieses Kennzeichen wirkt sich auf alle Popupmenüs in Ihrer Anwendung aus.

CMFCPopupMenu::SetMaxWidth

Legen Sie die maximale Breite für das Popupmenü fest.

void SetMaxWidth(int iMaxWidth);

Parameter

iMaxWidth
[in] Die maximale Breite für das Popupmenü in Pixeln.

Hinweise

Wenn der text, der einem Menübefehl zugeordnet ist, nicht in die maximale Breite passt, wird er abgeschnitten, und der Teil, der nicht passt, wird durch drei Punkte ersetzt.

CMFCPopupMenu::SetMessageWnd

void SetMessageWnd(CWnd* pMsgWnd);

Parameter

[in] pMsgWnd

Hinweise

CMFCPopupMenu::SetParentRibbonElement

void SetParentRibbonElement(CMFCRibbonBaseElement* pElem);

Parameter

[in] pElem

Hinweise

CMFCPopupMenu::SetQuickCustomizeType

void SetQuickCustomizeType(QUICK_CUSTOMIZE_TYPE Type);

Parameter

[in] Typ

Hinweise

CMFCPopupMenu::SetQuickMode

void SetQuickMode();

Hinweise

CMFCPopupMenu::SetRightAlign

Legt die Menüausrichtung für Popupmenüs fest.

void SetRightAlign(BOOL bRightAlign = TRUE);

Parameter

bRightAlign
[in] Ein Boolescher Wert, der die Menüausrichtung angibt. TRUE gibt die rechte Ausrichtung an, FALSCH gibt die linke Ausrichtung an.

Hinweise

Standardmäßig sind alle Popupmenüs linksbündig ausgerichtet.

CMFCPopupMenu::SetSendMenuSelectMsg

Legt ein Flag fest, das steuert, ob das Popupmenü den übergeordneten Frame benachrichtigt, wenn der Benutzer einen Befehl auswählt.

static void SetSendMenuSelectMsg(BOOL bSet = TRUE);

Parameter

bSet
[in] TRUE, wenn das Popupmenü den übergeordneten Frame benachrichtigt, andernfalls FALSE.

Hinweise

Dies ist eine globale Option für alle Popupmenüs in einer Anwendung. Wenn sie aktiviert ist, sendet das Popupmenü eine WM_MENUSELECT Nachricht an den übergeordneten Frame, wenn der Benutzer einen Befehl auswählt.

CMFCPopupMenu::ShowAllCommands

Erzwingt das Popupmenü, um alle Befehle anzuzeigen.

void ShowAllCommands();

Hinweise

Dies ist keine globale Einstellung und wirkt sich nur auf das aktuelle Popupmenü aus.

CMFCPopupMenu::TriggerResize

void TriggerResize();

Hinweise

CMFCPopupMenu::UpdateAllShadows

Aktualisiert die Schatten für alle geöffneten Popupmenüs.

static void UpdateAllShadows(LPRECT lprectScreen = NULL);

Parameter

lprectScreen
[in] Ein Rechteck, das den zu aktualisierenden Bereich in Bildschirmkoordinaten angibt.

Hinweise

Diese Methode ist nützlich, wenn Popupmenüs über animierte Steuerelemente oder andere Fenster mit dynamischem Inhalt angezeigt werden.

CMFCPopupMenu::UpdateShadow

Aktualisiert den Schatten für das Popupmenü.

void UpdateShadow(LPRECT lprectScreen = NULL);

Parameter

lprectScreen
[in] Ein Rechteck in Bildschirmkoordinaten, das die Grenzen des zu aktualisierenden Bereichs angibt.

Hinweise

Rufen Sie diese Methode auf, wenn ein Popupmenü mit einem Schatten ein animiertes Bild überlappt.

Siehe auch

Hierarchiediagramm
Klassen
CMFCPopupMenuBar-Klasse