CMFCMenuButton (clase)
Un botón que muestra un menú emergente e informes en las selecciones de menú del usuario.
Sintaxis
class CMFCMenuButton : public CMFCButton
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CMFCMenuButton::CMFCMenuButton | Construye un objeto CMFCMenuButton . |
Métodos públicos
Nombre | Descripción |
---|---|
CMFCMenuButton::P reTranslateMessage | Lo llama el marco para traducir mensajes de ventana antes de que se envíen. (Invalida CMFCButton::PreTranslateMessage ). |
CMFCMenuButton::SizeToContent | Cambia el tamaño del botón según el texto y el tamaño de imagen. |
Miembros de datos
Nombre | Descripción |
---|---|
CMFCMenuButton::m_bOSMenu | Especifica si se debe mostrar el menú emergente del sistema predeterminado o usar CContextMenuManager::TrackPopupMenu. |
CMFCMenuButton::m_bRightArrow | Especifica si el menú emergente aparecerá debajo o a la derecha del botón. |
CMFCMenuButton::m_bStayPressed | Especifica si el botón de menú cambia su estado después de que el usuario suelte el botón. |
CMFCMenuButton::m_hMenu | Identificador del menú de Windows adjunto. |
CMFCMenuButton::m_nMenuResult | Un identificador que indica qué elemento seleccionó el usuario en el menú emergente. |
CMFCMenuButton::m_bDefaultClick | Permitir el procesamiento predeterminado (en texto o imagen del botón). |
Comentarios
La clase CMFCMenuButton
se deriva de la clase CMFCButton, que es, a su vez, derivada de la clase CButton. Por lo tanto, puedes usar CMFCMenuButton
en el código de la misma manera que usarías CButton
.
Al crear un CMFCMenuButton
, debes pasar un identificador al menú emergente asociado. Por último, llama a la función CMFCMenuButton::SizeToContent
. CMFCMenuButton::SizeToContent
comprueba que el tamaño del botón es suficiente para incluir una flecha que apunte a la ubicación donde aparecerá la ventana emergente, es decir, debajo o a la derecha del botón.
Ejemplo
En el ejemplo siguiente se muestra cómo establecer el identificador del menú adjunto al botón, cambiar el tamaño del botón según su tamaño de texto e imagen y establecer el menú emergente que muestra el marco. Este fragmento de código forma parte del nuevo ejemplo de Controles.
CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;
Jerarquía de herencia
Requisitos
Encabezado: afxmenubutton.h
CMFCMenuButton::CMFCMenuButton
Construye un nuevo objeto CMFCMenuButton.
CMFCMenuButton();
CMFCMenuButton::m_bOSMenu
Una variable de miembro booleana que indica qué menú emergente muestra el marco.
BOOL m_bOSMenu;
Comentarios
Si m_bOSMenu
es TRUE, el marco llama al método heredado TrackPopupMenu
para este objeto. De lo contrario, el marco llama a CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow
Variable de miembro booleana que indica la ubicación del menú emergente.
BOOL m_bRightArrow;
Comentarios
Cuando el usuario presiona el botón de menú, la aplicación muestra un menú emergente. El marco mostrará el menú emergente debajo del botón o a la derecha del botón. El botón también tiene una flecha pequeña que indica dónde aparecerá el menú emergente. Si m_bRightArrow
es TRUE, el marco muestra el menú emergente a la derecha del botón. De lo contrario, muestra el menú emergente debajo del botón.
CMFCMenuButton::m_bStayPressed
Variable miembro booleana que indica si el botón de menú aparece presionado mientras el usuario realiza una selección en el menú emergente.
BOOL m_bStayPressed;
Comentarios
Si el miembro m_bStayPressed
es FALSE, el botón de menú no se presiona cuando el usuario hace clic en el botón. En este caso, el marco solo muestra el menú emergente.
Si el miembro m_bStayPressed
es TRUE, el botón de menú se presiona cuando el usuario hace clic en el botón. Permanece presionado hasta después de que el usuario cierre el menú emergente, ya sea realizando una selección o cancelando.
CMFCMenuButton::m_hMenu
El manipulador del menú adjunto.
HMENU m_hMenu;
Comentarios
El marco muestra el menú indicado por esta variable miembro cuando el usuario hace clic en el botón de menú.
CMFCMenuButton::m_nMenuResult
Un entero que indica qué elemento selecciona el usuario en el menú emergente.
int m_nMenuResult;
Comentarios
El valor de esta variable miembro es cero si el usuario cancela el menú sin realizar una selección o si se produce un error.
CMFCMenuButton::m_bDefaultClick
Permite el procesamiento predeterminado de texto o imágenes en el botón.
BOOL m_bDefaultClick;
Comentarios
Si se establece m_bDefaultClick en false, el botón mostrará el menú al hacer clic en cualquier lugar del botón.
CMFCMenuButton::P reTranslateMessage
Lo llama el marco para traducir mensajes de ventana antes de que se envíen.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parámetros
PMSG
[in] Apunta a una estructura MSG que contiene el mensaje que se va a procesar.
Valor devuelto
Distinto de cero si el mensaje se ha traducido y no se debe enviar; 0 si el mensaje no se ha traducido y se debe enviar.
Comentarios
CMFCMenuButton::SizeToContent
Cambia el tamaño del botón según el texto y el tamaño de imagen.
virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);
Parámetros
bCalcOnly
[in] Un parámetro booleano que indica si este método redimensiona el botón.
Valor devuelto
Un objeto CSize que especifica el nuevo tamaño del botón.
Comentarios
Si llamas a esta función y bCalcOnly es TRUE, SizeToContent
calculará solo el nuevo tamaño del botón.
El nuevo tamaño del botón se calcula para ajustarse al texto, la imagen y la flecha del botón. El marco también agrega márgenes predefinidos de 10 píxeles para el borde horizontal y 5 píxeles para el borde vertical.