Compartir a través de


Clase CMFCPopupMenu

Implementa la funcionalidad del menú emergente de Windows y lo prolonga agregando características tales como los menús con barra desplazable e información sobre herramientas. Para obtener información más detallada, consulta el código fuente que se ubica en la carpeta VC\atlmfc\src\mfc de la instalación de Visual Studio.

Sintaxis

class CMFCPopupMenu : public CMiniFrameWnd

Miembros

Constructores protegidos

Nombre Descripción
CMFCPopupMenu::CMFCPopupMenu Construye un objeto CMFCPopupMenu.

Métodos públicos

Nombre Descripción
CMFCPopupMenu::ActivatePopupMenu
CMFCPopupMenu::AlwaysShowEmptyToolsEntry Establece si un menú emergente está habilitado para mostrar entradas vacías para las herramientas definidas por el usuario.
CMFCPopupMenu::AreAllCommandsShown
CMFCPopupMenu::CheckArea Determina la ubicación de un punto relativa al menú emergente.
CMFCPopupMenu::CloseMenu
CMFCPopupMenu::Create Crea un menú emergente y lo adjunta al objeto CMFCPopupMenu.
CMFCPopupMenu::DefaultMouseClickOnClose
CMFCPopupMenu::EnableMenuLogo Inicializa el logotipo de un menú emergente.
CMFCPopupMenu::EnableMenuSound Habilita el sonido del menú.
CMFCPopupMenu::EnableResize
CMFCPopupMenu::EnableScrolling
CMFCPopupMenu::EnableVertResize
CMFCPopupMenu::FindSubItemByCommand
CMFCPopupMenu::GetActiveMenu Devuelve el menú activo actualmente.
CMFCPopupMenu::GetAnimationSpeed Devuelve la velocidad de animación de los menús emergentes.
CMFCPopupMenu::GetAnimationType Devuelve el tipo actual de animación de menú emergente.
CMFCPopupMenu::GetDropDirection
CMFCPopupMenu::GetForceMenuFocus Indica si se devuelve el foco a la barra de menús cuando se muestra un menú emergente.
CMFCPopupMenu::GetForceShadow
CMFCPopupMenu::GetHMenu Devuelve un manipulador al recurso de menú adjunto.
CMFCPopupMenu::GetMenuBar Devuelve el elemento CMFCPopupMenuBar insertado dentro del menú emergente.
CMFCPopupMenu::GetMenuItem Devuelve un puntero al elemento de menú del índice especificado.
CMFCPopupMenu::GetMenuItemCount Devuelve el número de elementos de un menú emergente.
CMFCPopupMenu::GetMessageWnd Devuelve un puntero a la ventana donde el marco de trabajo enruta los mensajes del menú emergente.
CMFCPopupMenu::GetParentArea
CMFCPopupMenu::GetParentButton Devuelve un puntero al botón de la barra de herramientas primario.
CMFCPopupMenu::GetParentPopupMenu Devuelve un puntero al menú emergente primario.
CMFCPopupMenu::GetParentRibbonElement
CMFCPopupMenu::GetParentToolBar Devuelve un puntero a la barra de herramientas primaria.
CMFCPopupMenu::GetQuickCustomizeType
CMFCPopupMenu::GetSelItem Devuelve un puntero al comando de menú seleccionado actualmente.
CMFCPopupMenu::HasBeenResized
CMFCPopupMenu::HideRarelyUsedCommands Indica si el menú emergente puede ocultar los comandos que se usan con poca frecuencia.
CMFCPopupMenu::InCommand
CMFCPopupMenu::InsertItem Inserta un nuevo elemento en el menú emergente en la ubicación especificada.
CMFCPopupMenu::InsertSeparator Inserta un separador en el menú emergente en la ubicación especificada.
CMFCPopupMenu::IsAlwaysClose
CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry
CMFCPopupMenu::IsCustomizePane Indica si el menú emergente funciona como un elemento QuickCustomizePane.
CMFCPopupMenu::IsEscClose
CMFCPopupMenu::IsIdle Indica si un menú emergente está inactivo actualmente.
CMFCPopupMenu::IsMenuSound
CMFCPopupMenu::IsQuickCustomize Determina si la clase CMFCToolBarMenuButton asociada está en modo QuickCustomize.
CMFCPopupMenu::IsResizeble
CMFCPopupMenu::IsRightAlign Indica si el menú está alineado a la derecha o a la izquierda.
CMFCPopupMenu::IsScrollable
CMFCPopupMenu::IsSendMenuSelectMsg Indica si el marco de trabajo notifica al marco primario cuando el usuario selecciona un comando en el menú emergente.
CMFCPopupMenu::IsShown Indica si el menú emergente está visible actualmente.
CMFCPopupMenu::MoveTo
CMFCPopupMenu::OnCmdMsg (Invalida CFrameWnd::OnCmdMsg).
CMFCPopupMenu::PostCommand
CMFCPopupMenu::PreTranslateMessage (Invalida CFrameWnd::PreTranslateMessage).
CMFCPopupMenu::RecalcLayout Recibe la llamada del marco de trabajo cuando se activan o desactivan las barras de control estándares o cuando se cambia el tamaño de la ventana de marco. (Invalida a CFrameWnd::RecalcLayout).
CMFCPopupMenu::RemoveAllItems Borra todos los elementos de un menú emergente.
CMFCPopupMenu::RemoveItem Quita el elemento especificado de un menú emergente.
CMFCPopupMenu::SaveState
CMFCPopupMenu::SetAnimationSpeed Establece la velocidad de animación de los menús emergentes.
CMFCPopupMenu::SetAnimationType Establece el tipo de animación del menú emergente.
CMFCPopupMenu::SetAutoDestroy
CMFCPopupMenu::SetDefaultItem Establece el comando predeterminado del menú emergente.
CMFCPopupMenu::SetForceMenuFocus Fuerza al foco de entrada a volver a la barra de menús cuando se muestra un menú emergente.
CMFCPopupMenu::SetForceShadow Fuerza al marco de trabajo a dibujar sombras de menú cuando los menús emergentes aparecen fuera del marco principal.
CMFCPopupMenu::SetMaxWidth Establece el ancho máximo del menú emergente.
CMFCPopupMenu::SetMessageWnd
CMFCPopupMenu::SetParentRibbonElement
CMFCPopupMenu::SetQuickCustomizeType
CMFCPopupMenu::SetQuickMode
CMFCPopupMenu::SetRightAlign Establece la alineación del menú para los menús emergentes.
CMFCPopupMenu::SetSendMenuSelectMsg Establece una marca que controla si el menú emergente notifica a su marco primario cuando el usuario selecciona un comando.
CMFCPopupMenu::ShowAllCommands Fuerza al menú emergente a mostrar todos los comandos.
CMFCPopupMenu::TriggerResize
CMFCPopupMenu::UpdateAllShadows Actualiza las sombras de todos los menús emergentes abiertos.
CMFCPopupMenu::UpdateShadow Actualiza la sombra del menú emergente.

Métodos protegidos

Nombre Descripción
CMFCPopupMenu::CreateTearOffBar
CMFCPopupMenu::OnChangeHot
CMFCPopupMenu::OnChooseItem

Comentarios

Normalmente, MFC crea menús emergentes automáticamente. Si desea crear un objeto CMFCPopupMenu manualmente, asigne uno en el montón y, a continuación, llame a CMFCPopupMenu::Create.

Ejemplo

El siguiente ejemplo muestra cómo configurar un objeto de menú emergente. En el ejemplo, se muestra cómo establecer el logotipo y el sonido del menú emergente, establecer la velocidad y el tipo de animación, dibujar sombras de menú cuando el menú emergente aparece fuera del marco principal, establecer el ancho máximo y establecer la alineación del menú derecho del menú emergente. Este fragmento de código forma parte del ejemplo de páginas personalizadas.

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

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CFrameWnd

CMiniFrameWnd

CMFCPopupMenu

Requisitos

Encabezado: afxpopupmenu.h

CMFCPopupMenu::ActivatePopupMenu

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

Parámetros

[in] pTopFrame
[in] pPopupMenu

Valor devuelto

Comentarios

CMFCPopupMenu::AlwaysShowEmptyToolsEntry

Establece si un menú emergente está habilitado para mostrar entradas vacías para las herramientas definidas por el usuario.

static void AlwaysShowEmptyToolsEntry(BOOL bShow = TRUE);

Parámetros

bShow
[in] TRUE si el menú emergente puede mostrar entradas vacías; FALSE en caso contrario.

CMFCPopupMenu::AreAllCommandsShown

BOOL AreAllCommandsShown() const;

Valor devuelto

Comentarios

CMFCPopupMenu::CheckArea

Determina la ubicación de un punto relativa al menú emergente.

MENUAREA_TYPE CheckArea(const CPoint& ptScreen) const;

Parámetros

ptScreen
[in] Punto (en coordenadas de pantalla).

Valor devuelto

Parámetro MENUAREA_TYPE que indica dónde está el punto en relación con el menú emergente.

Comentarios

El parámetro MENUAREA_TYPE puede tener uno de los valores siguientes.

  • OUTSIDE: ptScreen está fuera del menú emergente.

  • LOGO: ptScreen se encuentra sobre un área de logotipo.

  • TEAROFF_CAPTION: ptScreen se encuentra sobre el título de acoplamiento.

  • SHADOW_BOTTOM: ptScreen se encuentra sobre la sombra inferior del menú emergente.

  • SHADOW_RIGHT: ptScreen se encuentra sobre la sombra derecha del menú emergente.

  • MENU: ptScreen se encuentra sobre un comando.

CMFCPopupMenu::CloseMenu

void CloseMenu(BOOL bSetFocusToBar = FALSE);

Parámetros

[in] bSetFocusToBar

Comentarios

CMFCPopupMenu::CMFCPopupMenu

Construye un objeto CMFCPopupMenu.

CMFCPopupMenu(
    CMFCToolBarsMenuPropertyPage* pCustPage,
    LPCTSTR lpszTitle);

Parámetros

pCustPage
[in] Puntero a una página de personalización.

lpszTitle
[in] Cadena que contiene el título del menú.

Comentarios

Este método asigna los recursos de un elemento CMFCPopupMenu. Para crear el elemento de menú emergente, llame a CMFCPopupMenu::Create.

CMFCPopupMenu::Create

Crea un menú emergente y lo adjunta a un objeto CMFCPopupMenu.

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

Parámetros

pWndParent
[in] Ventana primaria del elemento CMFCPopupMenu.

x
[in] Coordenada de pantalla horizontal para la ubicación del menú emergente

y
[in] Coordenada de pantalla vertical para la ubicación del menú emergente.

hMenu
[in] Identificador de un recurso de menú.

bLocked
[in] Parámetro booleano que indica si el menú es personalizable. FALSE indica que el menú emergente es personalizable.

bOwnMessage
[in] Parámetro booleano que indica cómo enruta el marco de trabajo los mensajes de menú. Para obtener información más detallada, consulte la sección Comentarios.

Valor devuelto

TRUE si el método se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Si bOwnMessage es TRUE, el marco de trabajo enruta los mensajes de menú a pWndParent. pWndParent no debe ser NULL si bOwnMessage es TRUE. Si bOwnMessage es FALSE, el marco de trabajo enruta los mensajes de menú al menú emergente primario.

Ejemplo

En el siguiente ejemplo se muestra cómo se utiliza el método Create de la clase CMFCPopuMenu. Este fragmento de código forma parte del ejemplo de páginas personalizadas.

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

Parámetros

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

Valor devuelto

Comentarios

CMFCPopupMenu::DefaultMouseClickOnClose

virtual BOOL DefaultMouseClickOnClose() const;

Valor devuelto

Comentarios

Inicializa el logotipo de un menú emergente.

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

Parámetros

iLogoSize
[in] Tamaño del logotipo, en píxeles.

nLogoLocation
[in] Tipo de datos enumerado que indica la ubicación del logotipo.

Comentarios

Para mostrar el logotipo, implemente el método CFrameWndEx::OnDrawMenuLogo en la ventana del marco principal.

Los valores posibles de nLogoLocation son MENU_LOGO_LEFT, MENU_LOGO_RIGHT, MENU_LOGO_TOP y MENU_LOGO_BOTTOM.

CMFCPopupMenu::EnableMenuSound

Habilita el sonido del menú.

static void EnableMenuSound(BOOL bEnable = TRUE);

Parámetros

bEnable
[in] TRUE para habilitar el sonido, FALSE en caso contrario.

Comentarios

Si habilita el sonido, el marco de trabajo llama al método PlaySound cuando un usuario abre un menú emergente o selecciona un comando de menú. De forma predeterminada, esta característica está habilitada.

CMFCPopupMenu::EnableResize

void EnableResize(CSize sizeMinResize);

Parámetros

[in] sizeMinResize

Comentarios

CMFCPopupMenu::EnableScrolling

void EnableScrolling(BOOL = TRUE);

Parámetros

[in] BOOL

Comentarios

CMFCPopupMenu::EnableVertResize

void EnableVertResize(int nMinResize);

Parámetros

[in] nMinResize

Comentarios

CMFCPopupMenu::FindSubItemByCommand

CMFCToolBarMenuButton* FindSubItemByCommand(UINT uiCmd) const;

Parámetros

[in] uiCmd

Valor devuelto

Comentarios

CMFCPopupMenu::GetActiveMenu

Devuelve el menú activo actualmente.

static CMFCPopupMenu* GetActiveMenu();

Valor devuelto

Puntero al menú emergente activo o NULL si no hay ningún menú emergente activo actualmente.

Comentarios

Cada aplicación puede tener como máximo un menú emergente activo.

CMFCPopupMenu::GetAnimationSpeed

Devuelve la velocidad de animación de los menús emergentes.

static UINT GetAnimationSpeed();

Valor devuelto

Entero que indica la hora, en milisegundos, que tarda en finalizar una animación de menú emergente.

Comentarios

La velocidad de animación es un valor global. Utilice CMFCPopupMenu::SetAnimationSpeed para cambiar la velocidad de animación de los menús emergentes.

CMFCPopupMenu::GetAnimationType

Devuelve el tipo actual de animación de menú emergente.

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

Parámetros

bNoSystem
[in] Parámetro booleano que indica si este método comprueba el valor global. FALSE si desea que este método devuelva el estilo de animación de esta instancia de la clase CMFCPopupMenu.

Valor devuelto

Valor enumerado que describe el tipo de animación.

Comentarios

El estilo de animación de los menús emergentes es global para la aplicación. Use CMFCPopupMenu::SetAnimationType para establecer el estilo de animación.

En la tabla siguiente, se enumeran los tipos de animación posibles.

Valor Descripción
NO_ANIMATION El menú emergente no está animado y aparece inmediatamente.
UNFOLD El marco de trabajo muestra el menú emergente desde la esquina superior izquierda hacia la esquina inferior derecha.
DIAPOSITIVA El menú emergente se mueve de arriba a abajo.
ATENUAR El menú emergente aparece primero transparente y se solidifica gradualmente.

CMFCPopupMenu::GetDropDirection

DROP_DIRECTION GetDropDirection() const;

Valor devuelto

Comentarios

CMFCPopupMenu::GetForceMenuFocus

Indica si se devuelve el foco a la barra de menús cuando se muestra un menú emergente.

static BOOL GetForceMenuFocus();

Valor devuelto

TRUE si se devuelve el foco de entrada a la barra de menús cuando se muestra un menú emergente; FALSE si el menú emergente conserva el foco.

Comentarios

De manera predeterminada, la aplicación no devuelve el foco a la barra de menús. Para cambiar esta configuración, use CMFCPopupMenu::SetForceMenuFocus.

CMFCPopupMenu::GetForceShadow

static BOOL __stdcall GetForceShadow();

Valor devuelto

Comentarios

CMFCPopupMenu::GetHMenu

Devuelve un manipulador al recurso de menú adjunto.

HMENU GetHMenu();

CMFCPopupMenu::GetMenuBar

Devuelve el elemento CMFCPopupMenuBar insertado dentro del menú emergente.

virtual CMFCPopupMenuBar* GetMenuBar();

Valor devuelto

Puntero al CMFCPopupMenuBar insertado.

Comentarios

El menú emergente tiene un objeto CMFCPopupMenuBar insertado. Debe invalidar este método en una clase derivada si usa otra clase insertada.

CMFCPopupMenu::GetMenuItem

Devuelve un puntero al elemento de menú del índice especificado.

CMFCToolBarMenuButton* GetMenuItem(int iIndex) const;

Parámetros

iIndex
[in] Índice de base cero de un elemento de menú.

Valor devuelto

Puntero a un elemento de menú. NULL si el índice no es válido.

Comentarios

Los elementos de menú se representan mediante la clase CMFCToolBarMenuButton. Cuando se llama a este método, devuelve un puntero al elemento CMFCToolBarMenuButton adecuado.

CMFCPopupMenu::GetMenuItemCount

Devuelve el número de elementos de un menú emergente.

int GetMenuItemCount() const;

Valor devuelto

Número de elementos del menú.

CMFCPopupMenu::GetMessageWnd

Devuelve un puntero a la ventana donde el marco de trabajo enruta los mensajes del menú emergente.

CWnd* GetMessageWnd() const;

Valor devuelto

Puntero a la ventana que recibe los mensajes del menú emergente; NULL si no hay ninguna ventana.

Comentarios

Cuando se usa el método CMFCPopupMenu::Create para crear un menú emergente, se especifica qué ventana recibe los mensajes de menú.

CMFCPopupMenu::GetParentArea

virtual CWnd* GetParentArea(CRect& rectParentBtn);

Parámetros

[in] rectParentBtn

Valor devuelto

Comentarios

CMFCPopupMenu::GetParentButton

Devuelve un puntero al botón de la barra de herramientas primario.

CMFCToolBarMenuButton* GetParentButton() const;

Valor devuelto

Puntero al botón primario de la barra de herramientas. NULL si el menú emergente no tiene ningún botón primario de la barra de herramientas.

Comentarios

Se puede asociar un elemento CMFCPopupMenu a un botón del menú. En este escenario, el menú emergente aparece cuando un usuario selecciona el botón primario de la barra de herramientas.

Si el menú emergente es un menú contextual, no tendrá ningún botón primario de la barra de herramientas.

CMFCPopupMenu::GetParentPopupMenu

Devuelve un puntero al menú emergente primario.

CMFCPopupMenu* GetParentPopupMenu() const;

Valor devuelto

Puntero al objeto CMFCPopupMenu primario; NULL si no hay ningún menú emergente primario.

Comentarios

Un menú emergente tiene un objeto CMFCPopupMenu primario solo si es un submenú.

CMFCPopupMenu::GetParentRibbonElement

CMFCRibbonBaseElement* GetParentRibbonElement() const;

Valor devuelto

Comentarios

CMFCPopupMenu::GetParentToolBar

Devuelve un puntero a la barra de herramientas primaria.

CMFCToolBar* GetParentToolBar() const;

Valor devuelto

Puntero al botón primario de la barra de herramientas. NULL si el menú emergente no tiene barra de herramientas primaria.

Comentarios

Si CMFCPopupMenu es un menú contextual, no tiene barra de herramientas primaria.

CMFCPopupMenu::GetQuickCustomizeType

QUICK_CUSTOMIZE_TYPE GetQuickCustomizeType() const;

Valor devuelto

Comentarios

CMFCPopupMenu::GetSelItem

Devuelve un puntero al comando de menú seleccionado actualmente.

CMFCToolBarMenuButton* GetSelItem();

Valor devuelto

Puntero al comando de menú seleccionado actualmente; NULL si no se ha seleccionado ningún elemento.

Comentarios

Los comandos de menú de un menú emergente se representan mediante la clase CMFCToolBarMenuButton o una clase derivada de CMFCToolBarMenuButton.

CMFCPopupMenu::HasBeenResized

BOOL HasBeenResized() const;

Valor devuelto

Comentarios

CMFCPopupMenu::HideRarelyUsedCommands

Indica si el menú emergente puede ocultar los comandos que se usan con poca frecuencia.

BOOL HideRarelyUsedCommands() const;

Valor devuelto

TRUE si el menú emergente puede ocultar los comandos usados con poca frecuencia; en caso contrario, FALSE.

Comentarios

Este método solo especifica si un menú emergente puede ocultar los comandos usados con poca frecuencia, no si esa configuración está habilitada. Un menú emergente puede ocultar los comandos usados con poca frecuencia si tiene un botón primario y la ventana primaria se deriva de la clase CMFCMenuBar. Use CMFCMenuBar::SetRecentlyUsedMenus para habilitar esta característica y CMFCMenuBar::IsRecentlyUsedMenus para determinar si esta característica está habilitada actualmente. Debe llamar a ambos métodos para la ventana primaria.

CMFCPopupMenu::InCommand

virtual BOOL InCommand();

Valor devuelto

Comentarios

CMFCPopupMenu::InsertItem

Inserta un nuevo elemento en el menú emergente en la ubicación especificada.

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

Parámetros

botón
[in] Referencia al elemento de menú que se va a agregar.

iInsertAt
[in] Índice de base cero del nuevo elemento. Si iInsertAt es -1, el elemento se agrega al final del menú.

Valor devuelto

Índice de base cero de la posición en la que se insertó el elemento. -1 si se produce un error en el método.

Comentarios

Este método producirá un error si proporciona un valor no válido para iInsertAt, como un entero mayor que el número de elementos que hay actualmente en el menú emergente.

CMFCPopupMenu::InsertSeparator

Inserta un separador en el menú emergente en la ubicación especificada.

int InsertSeparator(int iInsertAt = -1);

Parámetros

iInsertAt
[in] Índice de base cero de la posición donde este método insertará el separador.

Valor devuelto

Índice de base cero de la posición en la que se insertó el separador. -1 si se produce un error en este método.

Comentarios

Un valor de -1 para iInsertAt significa que este método agregará el separador al final del menú emergente.

Este método produce un error si iInsertAt es un valor no válido.

CMFCPopupMenu::IsAlwaysClose

virtual BOOL IsAlwaysClose() const;

Valor devuelto

Comentarios

CMFCPopupMenu::IsAlwaysShowEmptyToolsEntry

static BOOL __stdcall IsAlwaysShowEmptyToolsEntry();

Valor devuelto

Comentarios

CMFCPopupMenu::IsCustomizePane

Indica si el menú emergente funciona como un elemento QuickCustomizePane.

BOOL IsCustomizePane();

Valor devuelto

TRUE si el menú emergente es de tipo QuckCustomizePane; en caso contrario, FALSE.

Comentarios

Use QuickCustomizePane para permitir que el usuario personalice directamente el menú emergente. QuickCustomizePane es un elemento CMFCPopupMenu que aparece cuando el usuario hace clic en un botón de la barra de herramientas para editarlo directamente.

La aplicación debe llamar a este método durante CMDIFrameWndEx::OnShowCustomizePane.

CMFCPopupMenu::IsEscClose

BOOL IsEscClose();

Valor devuelto

Comentarios

CMFCPopupMenu::IsIdle

Indica si un menú emergente está inactivo actualmente.

virtual BOOL IsIdle() const;

Valor devuelto

TRUE si el menú emergente está en modo inactivo; en caso contrario, FALSE.

Comentarios

De manera predeterminada, un menú emergente está en modo inactivo si la animación de pantalla está completa y el usuario no está desplazando el menú emergente.

CMFCPopupMenu::IsMenuSound

static UINT __stdcall IsMenuSound();

Valor devuelto

Comentarios

CMFCPopupMenu::IsQuickCustomize

Determina si la clase CMFCToolBarMenuButton asociada está en modo QuickCustomize.

BOOL IsQuickCustomize();

Valor devuelto

TRUE si el botón de menú asociado está en modo QuickCustomize; en caso contrario, FALSE. Este método también devolverá FALSE si el menú emergente no está asociado a un elemento CMFCToolBarMenuButton.

Comentarios

En el modo QuickCustomize, el usuario selecciona un botón en una barra de herramientas para personalizar el botón directamente.

CMFCPopupMenu::IsResizeble

BOOL IsResizeble() const;

Valor devuelto

Comentarios

CMFCPopupMenu::IsRightAlign

Indica si el menú está alineado a la derecha o a la izquierda.

BOOL IsRightAlign() const;

Valor devuelto

TRUE si el menú está alineado a la derecha; FALSE si el menú está alineado a la izquierda.

Comentarios

Puede usar CMFCPopupMenu::SetRightAlign para establecer la alineación del menú. De manera predeterminada, los menús emergentes usan la alineación izquierda.

La alineación de los menús no es una configuración global y puede variar entre los menús emergentes.

CMFCPopupMenu::IsScrollable

BOOL IsScrollable() const;

Valor devuelto

Comentarios

CMFCPopupMenu::IsSendMenuSelectMsg

Indica si el marco de trabajo notifica al marco primario cuando el usuario selecciona un comando en el menú emergente.

static BOOL IsSendMenuSelectMsg();

Valor devuelto

TRUE si el marco de trabajo notifica al marco primario; en caso contrario, FALSE.

Comentarios

El marco de trabajo notifica al marco primario mediante el envío del mensaje WM_MENUSELECT cuando un usuario selecciona un comando de menú.

CMFCPopupMenu::IsShown

Indica si el menú emergente está visible actualmente.

BOOL IsShown() const;

Valor devuelto

TRUE si un menú emergente está visible; en caso contrario, FALSE.

CMFCPopupMenu::MoveTo

void MoveTo(const CPoint& pt);

Parámetros

[in] pt

Comentarios

CMFCPopupMenu::OnChangeHot

virtual void OnChangeHot(int nHot);

Parámetros

[in] nHot

Comentarios

CMFCPopupMenu::OnChooseItem

virtual void OnChooseItem(UINT uidCmdID);

Parámetros

[in] uidCmdID

Comentarios

CMFCPopupMenu::OnCmdMsg

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

Parámetros

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

Valor devuelto

Comentarios

CMFCPopupMenu::PostCommand

BOOL PostCommand(UINT uiCommandID);

Parámetros

[in] uiCommandID

Valor devuelto

Comentarios

CMFCPopupMenu::PreTranslateMessage

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parámetros

[in] pMsg

Valor devuelto

Comentarios

CMFCPopupMenu::RecalcLayout

virtual void RecalcLayout(BOOL bNotify = TRUE);

Parámetros

[in] bNotify

Comentarios

CMFCPopupMenu::RemoveAllItems

Borra todos los elementos de un menú emergente.

void RemoveAllItems();

CMFCPopupMenu::RemoveItem

Quita el elemento especificado del menú emergente.

BOOL RemoveItem(int iIndex);

Parámetros

iIndex
[in] Índice de base cero del elemento que se va a eliminar.

Valor devuelto

TRUE si el método se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Este método organiza automáticamente los separadores que se ven afectados por la eliminación de un elemento. Para obtener más información sobre cómo reorganiza los separadores el marco de trabajo, consulte CMFCToolBar::RemoveButton.

CMFCPopupMenu::SaveState

virtual void SaveState();

Comentarios

CMFCPopupMenu::SetAnimationSpeed

Establece la velocidad de animación de los menús emergentes.

static void SetAnimationSpeed(UINT nElapse);

Parámetros

nElapse
[in] Nueva velocidad de animación, en milisegundos.

Comentarios

La velocidad de animación es un valor global y afecta a todos los menús emergentes de la aplicación. Este valor especifica cuánto tiempo tarda en finalizar la animación para un menú emergente.

De manera predeterminada, este parámetro se establece en 30 milisegundos. El intervalo de valores válidos para nElapse va de 0 a 200.

CMFCPopupMenu::SetAnimationType

Establece el tipo de animación de este menú emergente.

static void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parámetros

type
[in] Tipo de datos enumerado que especifica el tipo de animación.

Comentarios

Consulte CMFCPopupMenu::GetAnimationType para obtener una lista de valores válidos para el tipo.

CMFCPopupMenu::SetAutoDestroy

void SetAutoDestroy(BOOL bAutoDestroy = TRUE);

Parámetros

[in] bAutoDestroy

Comentarios

CMFCPopupMenu::SetDefaultItem

Establece el comando predeterminado del menú emergente.

void SetDefaultItem(UINT uiCmd);

Parámetros

uiCmd
[in] Identificador del comando de menú del nuevo comando predeterminado.

Comentarios

El comando predeterminado del menú emergente es el comando que está seleccionado cuando aparece el menú emergente.

CMFCPopupMenu::SetForceMenuFocus

Fuerza al foco de entrada a volver a la barra de menús cuando se muestra un menú emergente.

static void SetForceMenuFocus(BOOL bValue);

Parámetros

bValue
[in] TRUE si desea que el marco de trabajo fuerce el foco de entrada a la barra de menús cuando se muestre un menú emergente. FALSE si desea que el menú emergente conserve el foco.

Comentarios

Este método establece una marca global para todos los menús emergentes de la aplicación. De manera predeterminada, esta característica no está habilitada.

CMFCPopupMenu::SetForceShadow

Fuerza al marco de trabajo a dibujar sombras de menú cuando los menús emergentes aparecen fuera del marco principal.

static void SetForceShadow(BOOL bValue);

Parámetros

bValue
[in] TRUE si desea que el marco de trabajo dibuje sombras de menú; de lo contrario, FALSE.

Comentarios

Al llamar a este método, establece una marca global en la aplicación. Esta marca afecta a todos los menús emergentes de la aplicación.

CMFCPopupMenu::SetMaxWidth

Establece el ancho máximo del menú emergente.

void SetMaxWidth(int iMaxWidth);

Parámetros

iMaxWidth
[in] Ancho máximo del menú emergente, en píxeles.

Comentarios

Si el texto asociado a un comando de menú no cabe en el ancho máximo, se trunca, y la parte que no cabe se reemplaza por tres puntos.

CMFCPopupMenu::SetMessageWnd

void SetMessageWnd(CWnd* pMsgWnd);

Parámetros

[in] pMsgWnd

Comentarios

CMFCPopupMenu::SetParentRibbonElement

void SetParentRibbonElement(CMFCRibbonBaseElement* pElem);

Parámetros

[in] pElem

Comentarios

CMFCPopupMenu::SetQuickCustomizeType

void SetQuickCustomizeType(QUICK_CUSTOMIZE_TYPE Type);

Parámetros

[in] Type

Comentarios

CMFCPopupMenu::SetQuickMode

void SetQuickMode();

Comentarios

CMFCPopupMenu::SetRightAlign

Establece la alineación del menú para los menús emergentes.

void SetRightAlign(BOOL bRightAlign = TRUE);

Parámetros

bRightAlign
[in] Valor booleano que indica la alineación del menú. TRUE indica la alineación derecha, FALSE indica la alineación izquierda.

Comentarios

De manera predeterminada, todos los menús emergentes están alineados a la izquierda.

CMFCPopupMenu::SetSendMenuSelectMsg

Establece una marca que controla si el menú emergente notifica a su marco primario cuando el usuario selecciona un comando.

static void SetSendMenuSelectMsg(BOOL bSet = TRUE);

Parámetros

bSet
[in] TRUE si el menú emergente notifica a su marco primario, FALSE en caso contrario.

Comentarios

Se trata de una opción global para todos los menús emergentes de una aplicación. Si está habilitada, los menús emergentes enviarán un mensaje WM_MENUSELECT al marco primario cuando el usuario seleccione un comando.

CMFCPopupMenu::ShowAllCommands

Fuerza al menú emergente a mostrar todos los comandos.

void ShowAllCommands();

Comentarios

Esta no es una configuración global y afecta solo al menú emergente actual.

CMFCPopupMenu::TriggerResize

void TriggerResize();

Comentarios

CMFCPopupMenu::UpdateAllShadows

Actualiza las sombras de todos los menús emergentes abiertos.

static void UpdateAllShadows(LPRECT lprectScreen = NULL);

Parámetros

lprectScreen
[in] Rectángulo que especifica la región que se va a actualizar, en coordenadas de pantalla.

Comentarios

Este método es útil cuando los menús emergentes se muestran sobre controles animados u otras ventanas que tienen contenido dinámico.

CMFCPopupMenu::UpdateShadow

Actualiza la sombra del menú emergente.

void UpdateShadow(LPRECT lprectScreen = NULL);

Parámetros

lprectScreen
[in] Rectángulo, en coordenadas de pantalla, que especifica los límites de la región que se va a actualizar.

Comentarios

Llame a este método cuando un menú emergente que tenga una sombra se superponga con una imagen animada.

Consulte también

Gráfico de jerarquías
Clases
CMFCPopupMenuBar (clase)