CMFCPopupMenu Class

 

For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

Implements Windows pop-up menu functionality and extends it by adding features such as tear-off menus and tooltips.

class CMFCPopupMenu : public CMiniFrameWnd  

Protected Constructors

NameDescription
CMFCPopupMenu::CMFCPopupMenuConstructs a CMFCPopupMenu object.

Public Methods

NameDescription
CMFCPopupMenu::ActivatePopupMenu
CMFCPopupMenu::AlwaysShowEmptyToolsEntrySets whether a pop-up menu is enabled to show empty entries for user-defined tools.
CMFCPopupMenu::AreAllCommandsShown
CMFCPopupMenu::CheckAreaDetermines the location of a point relative to the pop-up menu.
CMFCPopupMenu::CloseMenu
CMFCPopupMenu::CreateCreates a pop-up menu and attaches it to the CMFCPopupMenu object.
CMFCPopupMenu::DefaultMouseClickOnClose
CMFCPopupMenu::EnableMenuLogoInitializes the logo for a pop-up menu.
CMFCPopupMenu::EnableMenuSoundEnables menu sound.
CMFCPopupMenu::EnableResize
CMFCPopupMenu::EnableScrolling
CMFCPopupMenu::EnableVertResize
CMFCPopupMenu::FindSubItemByCommand
CMFCPopupMenu::GetActiveMenuReturns the currently active menu.
CMFCPopupMenu::GetAnimationSpeedReturns the animation speed for pop-up menus.
CMFCPopupMenu::GetAnimationTypeReturns the current type of pop-up menu animation.
CMFCPopupMenu::GetDropDirection
CMFCPopupMenu::GetForceMenuFocusIndicates whether the focus is returned to the menu bar when a pop-up menu is displayed.
CMFCPopupMenu::GetForceShadow
CMFCPopupMenu::GetHMenuReturns a handle to the attached menu resource.
CMFCPopupMenu::GetMenuBarReturns the CMFCPopupMenuBar embedded inside the pop-up menu.
CMFCPopupMenu::GetMenuItemReturns a pointer to the menu item at the specified index.
CMFCPopupMenu::GetMenuItemCountReturns the number of items in a popup menu.
CMFCPopupMenu::GetMessageWndReturns a pointer to the window where the framework routes the pop-up menu messages.
CMFCPopupMenu::GetParentArea
CMFCPopupMenu::GetParentButtonReturns a pointer to the parent toolbar button.
CMFCPopupMenu::GetParentPopupMenuReturns a pointer to the parent pop-up menu.
CMFCPopupMenu::GetParentRibbonElement
CMFCPopupMenu::GetParentToolBarReturns a pointer to the parent toolbar.
CMFCPopupMenu::GetQuickCustomizeType
CMFCPopupMenu::GetSelItemReturns a pointer to the currently selected menu command.
CMFCPopupMenu::HasBeenResized
CMFCPopupMenu::HideRarelyUsedCommandsIndicates whether the pop-up menu can hide rarely used commands.
CMFCPopupMenu::InCommand
CMFCPopupMenu::InsertItemInserts a new item into the pop-up menu at the specified location.
CMFCPopupMenu::InsertSeparatorInserts a separator into the pop-up menu at the specified location.
CMFCPopupMenu::IsAlwaysClose
CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry
CMFCPopupMenu::IsCustomizePaneIndicates whether the pop-up menu is functioning as a QuickCustomizePane.
CMFCPopupMenu::IsEscClose
CMFCPopupMenu::IsIdleIndicates whether a pop-up menu is currently idle.
CMFCPopupMenu::IsMenuSound
CMFCPopupMenu::IsQuickCustomizeDetermines whether the associated CMFCToolBarMenuButton Class is in QuickCustomize mode.
CMFCPopupMenu::IsResizeble
CMFCPopupMenu::IsRightAlignIndicates whether the menu is right-aligned or left-aligned.
CMFCPopupMenu::IsScrollable
CMFCPopupMenu::IsSendMenuSelectMsgIndicates whether the framework notifies the parent frame when the user selects a command from the pop-up menu.
CMFCPopupMenu::IsShownIndicates whether the pop-up menu is currently visible.
CMFCPopupMenu::MoveTo
CMFCPopupMenu::OnCmdMsg(Overrides CFrameWnd::OnCmdMsg.)
CMFCPopupMenu::PostCommand
CMFCPopupMenu::PreTranslateMessage(Overrides CFrameWnd::PreTranslateMessage.)
CMFCPopupMenu::RecalcLayoutCalled by the framework when the standard control bars are toggled on or off or when the frame window is resized. (Overrides CFrameWnd::RecalcLayout.)
CMFCPopupMenu::RemoveAllItemsClears all the items from a pop-up menu.
CMFCPopupMenu::RemoveItemRemoves the specified item from a pop-up menu.
CMFCPopupMenu::SaveState
CMFCPopupMenu::SetAnimationSpeedSets the animation speed for pop-up menus.
CMFCPopupMenu::SetAnimationTypeSets the animation type for the pop-up menu.
CMFCPopupMenu::SetAutoDestroy
CMFCPopupMenu::SetDefaultItemSets the default command for the pop-up menu.
CMFCPopupMenu::SetForceMenuFocusForces the input focus to return to the menu bar when a pop-up menu is displayed.
CMFCPopupMenu::SetForceShadowForces the framework to draw menu shadows when pop-up menus appear outside the main frame.
CMFCPopupMenu::SetMaxWidthSet the maximum width for the pop-up menu.
CMFCPopupMenu::SetMessageWnd
CMFCPopupMenu::SetParentRibbonElement
CMFCPopupMenu::SetQuickCustomizeType
CMFCPopupMenu::SetQuickMode
CMFCPopupMenu::SetRightAlignSets the menu alignment for pop-up menus.
CMFCPopupMenu::SetSendMenuSelectMsgSets a flag that controls whether the pop-up menu notifies its parent frame when the user selects a command.
CMFCPopupMenu::ShowAllCommandsForces the pop-up menu to display all commands.
CMFCPopupMenu::TriggerResize
CMFCPopupMenu::UpdateAllShadowsUpdates the shadows for all opened pop-up menus.
CMFCPopupMenu::UpdateShadowUpdates the shadow for the pop-up menu.

Protected Methods

NameDescription
CMFCPopupMenu::CreateTearOffBar
CMFCPopupMenu::OnChangeHot
CMFCPopupMenu::OnChooseItem

Remarks

Normally, MFC creates pop-up menus automatically. If you want to create a CMFCPopupMenu object manually, allocate one on the heap and then call CMFCPopupMenu::Create.

The following example demonstrates how to configure a pop-up menu object. The example shows how to set the logo and the sound of the pop-up menu, set the animation speed and type, draw menu shadows when the pop-up menu appears outside the main frame, set the maximum width, and set the right menu alignment of the pop-up menu. This code snippet is part of the Custom Pages sample.

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

CObject

CCmdTarget

CWnd

CFrameWnd

CMiniFrameWnd

CMFCPopupMenu

Header: afxpopupmenu.h

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

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

Parameters

[in] pTopFrame
[in] pPopupMenu

Return Value

Remarks

Sets whether a pop-up menu is enabled to show empty entries for user-defined tools.

static void AlwaysShowEmptyToolsEntry(BOOL bShow = TRUE);

Parameters

[in] bShow
TRUE if the pop-up menu can display empty entries; FALSE otherwise.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL AreAllCommandsShown() const;  

Return Value

Remarks

Determines the location of a point relative to the pop-up menu.

MENUAREA_TYPE CheckArea(const CPoint& ptScreen) const;  

Parameters

[in] ptScreen
A point, in screen coordinates.

Return Value

A MENUAREA_TYPE parameter that indicates where the point is relative to the pop-up menu.

Remarks

A MENUAREA_TYPE parameter can have any one of the following values.

  • OUTSIDE - ptScreen is outside the pop-up menu.

  • LOGO - ptScreen is over a logo area.

  • TEAROFF_CAPTION - ptScreen is over the tear-off caption.

  • SHADOW_BOTTOM - ptScreen is over the bottom shadow of the pop-up menu.

  • SHADOW_RIGHT - ptScreen is over the right shadow of the pop-up menu.

  • MENU - ptScreen is over a command.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void CloseMenu(BOOL bSetFocusToBar = FALSE);

Parameters

[in] bSetFocusToBar

Remarks

Constructs a CMFCPopupMenu object.

CMFCPopupMenu(
    CMFCToolBarsMenuPropertyPage* pCustPage,  
    LPCTSTR lpszTitle);

Parameters

[in] pCustPage
A pointer to a customization page.

[in] lpszTitle
A string that contains the menu caption.

Remarks

This method allocates the resources for a CMFCPopupMenu. To create the pop-up menu item, call CMFCPopupMenu::Create.

Creates a pop-up menu and attaches it to a CMFCPopupMenu object.

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

Parameters

[in] pWndParent
The parent window for the CMFCPopupMenu.

[in] x
The horizontal screen coordinate for the location of the pop-up menu

[in] y
The vertical screen coordinate for the location of the pop-menu.

[in] hMenu
A handle to a menu resource.

[in] bLocked
A Boolean parameter that indicates whether the menu is customizable. FALSE indicates that the pop-up menu is customizable.

[in] bOwnMessage
A Boolean parameter that indicates how the framework routes the menu messages. See the Remarks section for more details.

Return Value

TRUE if the method is successful; otherwise FALSE.

Remarks

If bOwnMessage is TRUE, the framework routes any menu messages to pWndParent. pWndParent must not be NULL if bOwnMessage is TRUE. If bOwnMessage is FALSE, the framework routes the menu messages to the parent pop-up menu.

Example

The following example demonstrates how to use the Create method of the CMFCPopuMenu class. This code snippet is part of the Custom Pages sample.

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

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

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

Parameters

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

Return Value

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL DefaultMouseClickOnClose() const;  

Return Value

Remarks

Initializes the logo for a pop-up menu.

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

Parameters

[in] iLogoSize
The size of the logo, in pixels.

[in] nLogoLocation
An enumerated data type that indicates the location of the logo.

Remarks

To display the logo, implement the method CFrameWndEx::OnDrawMenuLogo in the main frame window.

The possible values for nLogoLocation are MENU_LOGO_LEFT, MENU_LOGO_RIGHT, MENU_LOGO_TOP, and MENU_LOGO_BOTTOM.

Enables menu sound.

static void EnableMenuSound(BOOL bEnable = TRUE);

Parameters

[in] bEnable
TRUE to enable sound, FALSE otherwise.

Remarks

If you enable sound, the framework calls the PlaySound method when a user opens a pop-up menu or selects a menu command. By default, this feature is enabled.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void EnableResize(CSize sizeMinResize);

Parameters

[in] sizeMinResize

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void EnableScrolling(BOOL = TRUE);

Parameters

[in] BOOL

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void EnableVertResize(int nMinResize);

Parameters

[in] nMinResize

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

CMFCToolBarMenuButton* FindSubItemByCommand(UINT uiCmd) const;  

Parameters

[in] uiCmd

Return Value

Remarks

Returns the currently active menu.

static CMFCPopupMenu* GetActiveMenu();

Return Value

A pointer to the active pop-up menu, or NULL if no pop-up menu is currently active.

Remarks

Each application can have at most one active pop-up menu.

Returns the animation speed for pop-up menus.

static UINT GetAnimationSpeed();

Return Value

An integer that indicates the time, in milliseconds, that a pop-up menu animation takes to finish.

Remarks

The animation speed is a global value. Use CMFCPopupMenu::SetAnimationSpeed to change the animation speed for pop-up menus.

Returns the current type of pop-up animation.

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

Parameters

[in] bNoSystem
A Boolean parameter that indicates whether this method checks the global value. FALSE if you want this method to return the animation style for this instance of the CMFCPopupMenu Class.

Return Value

An enumerated value that describes the animation type.

Remarks

The style of animation for pop-up menus is global for your application. Use CMFCPopupMenu::SetAnimationType to set the animation style.

The following table lists the possible animation types.

NO_ANIMATION
The pop-up menu is not animated and appears immediately.

UNFOLD
The framework reveals the pop-up menu from the upper-left corner to the lower right corner.

SLIDE
The pop-up menu moves from top to bottom.

FADE
The pop-up menu first appears transparent and gradually solidifies.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

DROP_DIRECTION GetDropDirection() const;  

Return Value

Remarks

Indicates whether the focus is returned to the menu bar when a pop-up menu is displayed.

static BOOL GetForceMenuFocus();

Return Value

TRUE if the input focus is returned to the menu bar when a pop-up menu is displayed; FALSE if the pop-up menu retains the focus.

Remarks

By default, your application does not return focus to the menu bar. To change this setting, use CMFCPopupMenu::SetForceMenuFocus.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

static BOOL __stdcall GetForceShadow();

Return Value

Remarks

Returns a handle to the attached menu resource.

HMENU GetHMenu();

Returns the CMFCPopupMenuBar embedded inside the pop-up menu.

virtual CMFCPopupMenuBar* GetMenuBar();

Return Value

A pointer to the embedded CMFCPopupMenuBar.

Remarks

The pop-up menu has an embedded CMFCPopupMenuBar object. You must override this method in a derived class if you are using a different embedded class.

Returns a pointer to the menu item at the specified index.

CMFCToolBarMenuButton* GetMenuItem(int iIndex) const;  

Parameters

[in] iIndex
The zero-based index of a menu item.

Return Value

A pointer to a menu item. NULL if the index is invalid.

Remarks

Menu items are represented by the CMFCToolBarMenuButton Class. When you call this method, it returns a pointer to the appropriate CMFCToolBarMenuButton.

Returns the number of items in a pop-up menu.

int GetMenuItemCount() const;  

Return Value

The number of items in the menu.

Returns a pointer to the window where the framework routes the pop-up menu messages.

CWnd* GetMessageWnd() const;  

Return Value

A pointer to the window that receives the pop-up menu messages; NULL if there is no window.

Remarks

When you use the method CMFCPopupMenu::Create to create a pop-up menu, you specify what window receives the menu messages.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual CWnd* GetParentArea(CRect& rectParentBtn);

Parameters

[in] rectParentBtn

Return Value

Remarks

Returns a pointer to the parent toolbar button.

CMFCToolBarMenuButton* GetParentButton() const;  

Return Value

A pointer to the parent toolbar button. NULL if the pop-up menu has no parent toolbar button.

Remarks

A CMFCPopupMenu can be associated with a button on the menu. In this scenario, the pop-up menu appears when a user selects the parent toolbar button.

If the pop-up menu is a shortcut menu, it will have no parent toolbar button.

Returns a pointer to the parent pop-up menu.

CMFCPopupMenu* GetParentPopupMenu() const;  

Return Value

A pointer to the parent CMFCPopupMenu object; NULL if there is no parent pop-up menu.

Remarks

A pop-up menu has a parent CMFCPopupMenu object only if it is a submenu.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

CMFCRibbonBaseElement* GetParentRibbonElement() const;  

Return Value

Remarks

Returns a pointer to the parent toolbar.

CMFCToolBar* GetParentToolBar() const;  

Return Value

A pointer to the parent toolbar. NULL if the pop-up menu has no parent toolbar.

Remarks

If the CMFCPopupMenu is a shortcut menu, then it has no parent toolbar.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

QUICK_CUSTOMIZE_TYPE GetQuickCustomizeType() const;  

Return Value

Remarks

Returns a pointer to the currently selected menu command.

CMFCToolBarMenuButton* GetSelItem();

Return Value

A pointer to the currently selected menu command; NULL if no item is selected.

Remarks

The menu commands on a pop-up menu are represented by the CMFCToolBarMenuButton Class, or a class derived from CMFCToolBarMenuButton.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL HasBeenResized() const;  

Return Value

Remarks

Indicates whether the pop-up menu can hide rarely used commands.

BOOL HideRarelyUsedCommands() const;  

Return Value

TRUE if the pop-up menu can hide the rarely used commands; otherwise FALSE.

Remarks

This method specifies only whether a pop-up menu can hide rarely used commands, not if that configuration is enabled. A pop-up menu can hide rarely used commands if it has a parent button and the parent window is derived from the CMFCMenuBar Class. Use CMFCMenuBar::SetRecentlyUsedMenus to enable this feature and CMFCMenuBar::IsRecentlyUsedMenus to determine if this feature is currently enabled. You must call both of these methods for the parent window.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL InCommand();

Return Value

Remarks

Inserts a new item into the pop-up menu at the specified location.

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

Parameters

[in] button
A reference to the menu item to add.

[in] iInsertAt
The zero-based index for the new item. If iInsertAt is -1, the item is added to the end of the menu.

Return Value

The zero-based index of the position where the item was inserted. -1 if the method fails.

Remarks

This method will fail if you provide an invalid value for iInsertAt, such as an integer larger than the number of items currently on the pop-up menu.

Inserts a separator into the pop-up menu at the specified location.

int InsertSeparator(int iInsertAt = -1);

Parameters

[in] iInsertAt
The zero-based index of the position where this method will insert the separator.

Return Value

The zero-based index of the position where the separator was inserted. -1 if this method fails.

Remarks

A value of -1 for iInsertAt means this method will add the separator to the end of the pop-up menu.

This method fails if iInsertAt is an invalid value.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL IsAlwaysClose() const;  

Return Value

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

static BOOL __stdcall IsAlwaysShowEmptyToolsEntry();

Return Value

Remarks

Indicates whether the pop-up menu is functioning as a QuickCustomizePane.

BOOL IsCustomizePane();

Return Value

TRUE if the pop-up is a QuckCustomizePane; otherwise FALSE.

Remarks

Use the QuickCustomizePane to enable the user to directly customize the pop-up menu. The QuickCustomizePane is a CMFCPopupMenu that appears when the user clicks on a toolbar button to edit it directly.

Your application should call this method during CMDIFrameWndEx::OnShowCustomizePane.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL IsEscClose();

Return Value

Remarks

Indicates whether a pop-up menu is currently idle.

virtual BOOL IsIdle() const;  

Return Value

TRUE if the pop-up menu is in idle mode; otherwise FALSE.

Remarks

By default, a pop-up menu is in idle mode if the display animation is complete and the user is not scrolling the pop-up menu.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

static UINT __stdcall IsMenuSound();

Return Value

Remarks

Determines whether the associated CMFCToolBarMenuButton Class is in QuickCustomize mode.

BOOL IsQuickCustomize();

Return Value

TRUE if the associated menu button is in QuickCustomize mode; otherwise FALSE. This method will also return FALSE if the pop-up menu is not associated with a CMFCToolBarMenuButton.

Remarks

In QuickCustomize mode the user selects a button on a toolbar to customize the button directly.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL IsResizeble() const;  

Return Value

Remarks

Indicates whether the menu is right-aligned or left-aligned.

BOOL IsRightAlign() const;  

Return Value

TRUE if the menu is right-aligned; FALSE if the menu left-aligned.

Remarks

You can use CMFCPopupMenu::SetRightAlign to set the menu alignment. By default, pop-up menus use left-alignment.

Menu alignment is not a global setting and can vary between pop-up menus.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL IsScrollable() const;  

Return Value

Remarks

Indicates whether the framework notifies the parent frame when the user selects a command from the pop-up menu.

static BOOL IsSendMenuSelectMsg();

Return Value

TRUE if the framework notifies the parent frame; otherwise FALSE.

Remarks

The framework notifies the parent frame by sending it the WM_MENUSELECT message when a used selects a menu command.

Indicates whether the pop-up menu is currently visible.

BOOL IsShown() const;  

Return Value

TRUE if a pop-up menu is visible; otherwise FALSE.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void MoveTo(const CPoint& pt);

Parameters

[in] pt

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual void OnChangeHot(int nHot);

Parameters

[in] nHot

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual void OnChooseItem(UINT uidCmdID);

Parameters

[in] uidCmdID

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

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

Parameters

[in] nID
[in] nCode
[in] pExtra
[in] pHandlerInfo

Return Value

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

BOOL PostCommand(UINT uiCommandID);

Parameters

[in] uiCommandID

Return Value

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parameters

[in] pMsg

Return Value

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parameters

[in] bNotify

Remarks

Clears all the items from a pop-up menu.

void RemoveAllItems();

Removes the specified item from the pop-up menu.

BOOL RemoveItem(int iIndex);

Parameters

[in] iIndex
The zero-based index of the item to delete.

Return Value

TRUE if the method is successful; otherwise FALSE.

Remarks

This method automatically arranges any separators that are affected by the removal of an item. For more information about how the framework rearranges separators, see CMFCToolBar::RemoveButton.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual void SaveState();

Remarks

Sets the animation speed for pop-up menus.

static void SetAnimationSpeed(UINT nElapse);

Parameters

[in] nElapse
The new animation speed, in milliseconds.

Remarks

The animation speed is a global value and affects all the pop-up menus in the application. This value specifies how long it takes for the animation for a pop-up menu to finish.

By default, this parameter is set to 30 milliseconds. The range of valid values for nElapse is from 0 to 200.

Sets the animation type for this pop-up menu.

static void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parameters

[in] type
An enumerated data type that specifies the type of animation.

Remarks

See CMFCPopupMenu::GetAnimationType for a list of valid values for type.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetAutoDestroy(BOOL bAutoDestroy = TRUE);

Parameters

[in] bAutoDestroy

Remarks

Sets the default command for the pop-up menu.

void SetDefaultItem(UINT uiCmd);

Parameters

[in] uiCmd
The menu command ID of the new default command.

Remarks

The default command in the pop-up menu is the command that is selected when the pop-up menu appears.

Forces the input focus to return to the menu bar when a pop-up menu is displayed.

static void SetForceMenuFocus(BOOL bValue);

Parameters

[in] bValue
TRUE if you want the framework to force the input focus to the menu bar when a pop-up menu is displayed. FALSE if you want the pop-up menu to retain the focus.

Remarks

This method sets a flag that is global for all pop-up menus in the application. By default, this feature is not enabled.

Forces the framework to draw menu shadows when pop-up menus appear outside the main frame.

static void SetForceShadow(BOOL bValue);

Parameters

[in] bValue
TRUE if you want the framework to draw menu shadows, FALSE otherwise.

Remarks

When you call this method, it sets a global flag in your application. This flag affects all pop-up menus in your application.

Set the maximum width for the pop-up menu.

void SetMaxWidth(int iMaxWidth);

Parameters

[in] iMaxWidth
The maximum width for the pop-up menu, in pixels.

Remarks

If the text associated with a menu command will not fit in the maximum width, it is truncated and the part that does not fit is replaced by three dots.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetMessageWnd(CWnd* pMsgWnd);

Parameters

[in] pMsgWnd

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetParentRibbonElement(CMFCRibbonBaseElement* pElem);

Parameters

[in] pElem

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetQuickCustomizeType(QUICK_CUSTOMIZE_TYPE Type);

Parameters

[in] Type

Remarks

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetQuickMode();

Remarks

Sets the menu alignment for pop-up menus.

void SetRightAlign(BOOL bRightAlign = TRUE);

Parameters

[in] bRightAlign
A Boolean that indicates the menu alignment. TRUE indicates right alignment, FALSE indicates left alignment.

Remarks

By default, all pop-up menus are left-aligned.

Sets a flag that controls whether the pop-up menu notifies its parent frame when the user selects a command.

static void SetSendMenuSelectMsg(BOOL bSet = TRUE);

Parameters

[in] bSet
TRUE if the pop-up menu notifies its parent frame, FALSE otherwise.

Remarks

This is a global option for all the pop-up menus in an application. If it is enabled, the pop-up menus will send a WM_MENUSELECT message to the parent frame when the user selects a command.

Forces the pop-up menu to display all commands.

void ShowAllCommands();

Remarks

This is not a global setting and affects only the current pop-up menu.

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void TriggerResize();

Remarks

Updates the shadows for all opened pop-up menus.

static void UpdateAllShadows(LPRECT lprectScreen = NULL);

Parameters

[in] lprectScreen
A rectangle that specifies the region to update, in screen coordinates.

Remarks

This method is useful when pop-up menus are displayed over animated controls or other windows that have dynamic content.

Updates the shadow for the pop-up menu.

void UpdateShadow(LPRECT lprectScreen = NULL);

Parameters

[in] lprectScreen
A rectangle, in screen coordinates, that specifies the boundaries of the region to update.

Remarks

Call this method when a pop-up menu that has a shadow overlaps an animated image.

Hierarchy Chart
Classes
CMFCPopupMenuBar Class

Show: