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
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
CMFCPopupMenu::EnableMenuLogo
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.