CMFCDropDownToolbarButton (clase)
Un tipo de botón de la barra de herramientas que se comporta como un botón normal cuando se hace clic en él. Sin embargo, abre una barra de herramientas desplegable (CMFCDropDownToolBar (clase)) si el usuario presiona y mantiene presionado el botón de la barra de herramientas.
Sintaxis
class CMFCDropDownToolbarButton : public CMFCToolBarButton
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton | Construye un objeto CMFCDropDownToolbarButton . |
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton |
Destructor. |
Métodos públicos
Nombre | Descripción |
---|---|
CMFCDropDownToolbarButton::CopyFrom | Copia las propiedades de otro botón de la barra de herramientas en el botón actual. (Invalida CMFCToolBarButton::CopyFrom). |
CMFCDropDownToolbarButton::CreateObject |
Usado por el marco de trabajo para crear una instancia dinámica de este tipo de clase. |
CMFCDropDownToolbarButton::DropDownToolbar | Abre una barra de herramientas desplegable. |
CMFCDropDownToolbarButton::ExportToMenuButton | Copia el texto del botón de la barra de herramientas en un menú. (Invalida CMFCToolBarButton::ExportToMenuButton.) |
CMFCDropDownToolbarButton::GetDropDownToolBar | Recupera la barra de herramientas desplegable asociada al botón. |
CMFCDropDownToolbarButton::GetThisClass |
Lo usa el marco para obtener un puntero al objeto CRuntimeClass asociado a este tipo de clase. |
CMFCDropDownToolbarButton::IsDropDown | Determina si la barra de herramientas desplegable está abierta actualmente. |
CMFCDropDownToolbarButton::IsExtraSize | Determina si el botón se puede mostrar con un borde extendido. (Invalida CMFCToolBarButton::IsExtraSize.) |
CMFCDropDownToolbarButton::OnCalculateSize | Lo llama el marco para calcular el tamaño del botón para el contexto de dispositivo y el estado de acoplamiento especificados. (Invalida CMFCToolBarButton::OnCalculateSize.) |
CMFCDropDownToolbarButton::OnCancelMode |
Lo llama el marco para administrar el mensaje WM_CANCELMODE. (Invalida CMCToolBarButton::OnCancelMode ). |
CMFCDropDownToolbarButton::OnChangeParentWnd | Lo llama el marco cuando el botón se inserta en una barra de herramientas nueva. (Invalida CMFCToolBarButton::OnChangeParentWnd). |
CMFCDropDownToolbarButton::OnClick | Lo llama el marco cuando el usuario pulsa el botón del mouse. Invalida CMFCToolBarButton::OnClick. |
CMFCDropDownToolbarButton::OnClickUp | Lo llama el marco cuando el usuario suelta el botón del mouse. (Invalida CMFCToolBarButton::OnClickUp.) |
CMFCDropDownToolbarButton::OnContextHelp | Lo llama el marco cuando la barra de herramientas primaria controla un mensaje de WM_HELPHITTEST. (Invalida CMFCToolBarButton::OnContextHelp.) |
CMFCDropDownToolbarButton::OnCustomizeMenu | Modifica el menú proporcionado cuando la aplicación muestra un menú contextual en la barra de herramientas primaria. (Invalida CMFCToolBarButton::OnCustomizeMenu.) |
CMFCDropDownToolbarButton::OnDraw | Lo llama el marco para dibujar el botón mediante las opciones y los estilos especificados. (Invalida CMFCToolBarButton::OnDraw.) |
CMFCDropDownToolbarButton::OnDrawOnCustomizeList | Lo llama el marco para dibujar el botón en el panel Comandos del cuadro de diálogo Personalizar. Invalida CMFCToolBarButton::OnDrawOnCustomizeList. |
CMFCDropDownToolbarButton::Serialize | Lee este objeto desde un archivo o lo escribe en un archivo. (Invalida CMFCToolBarButton::Serialize). |
CMFCDropDownToolbarButton::SetDefaultCommand | Establece el comando predeterminado que usa el marco cuando un usuario hace clic en el botón. |
Miembros de datos
Nombre | Descripción |
---|---|
CMFCDropDownToolbarButton::m_uiShowBarDelay | Especifica el período de tiempo que un usuario debe mantener presionado el botón del mouse antes de que aparezca la barra de herramientas desplegable. |
Comentarios
Un elemento CMFCDropDownToolBarButton
difiere de un botón normal en que tiene una flecha pequeña en la esquina inferior derecha del botón. Después de que el usuario seleccione un botón en la barra de herramientas desplegable, el marco muestra su icono en el botón de la barra de herramientas de nivel superior (el botón con la flecha pequeña en la esquina inferior derecha).
Para obtener información sobre cómo implementar una barra de herramientas desplegable, vea CMFCDropDownToolBar (clase).
El objeto CMFCDropDownToolBarButton
se puede exportar a un objeto CMFCToolBarMenuButton Class y mostrarse como un botón de menú con un menú emergente.
Jerarquía de herencia
Requisitos
Encabezado: afxdropdowntoolbar.h
CMFCDropDownToolbarButton::CopyFrom
Copia las propiedades de otro botón de la barra de herramientas en el botón actual.
virtual void CopyFrom(const CMFCToolBarButton& src);
Parámetros
src
[in] Referencia al botón de origen desde el que se va a copiar.
Comentarios
Llame a este método para copiar otro botón de la barra de herramientas en este botón de la barra de herramientas. src debe ser del tipo CMFCDropDownToolbarButton
.
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton
Construye un objeto CMFCDropDownToolbarButton
.
CMFCDropDownToolbarButton();
CMFCDropDownToolbarButton(
LPCTSTR lpszName,
CMFCDropDownToolBar* pToolBar);
Parámetros
lpszName
[in] Texto predeterminado del botón.
pToolBar
[in] Puntero al objeto CMFCDropDownToolBar
que se muestra cuando el usuario presiona el botón.
Comentarios
La segunda sobrecarga del constructor copia en el botón desplegable el primer botón de la barra de herramientas que pToolBar especifica.
Normalmente, un botón de barra de herramientas desplegable usa el texto del botón usado más recientemente en la barra de herramientas que pToolBar especifica. Usa el texto especificado por lpszName cuando el botón se convierte en un botón de menú o se muestra en la pestaña Comandos del cuadro de diálogo Personalizar. Para obtener más información sobre el cuadro de diálogo Personalizar, consulte CMFCToolBarsCustomizeDialog Clase.
Ejemplo
En el ejemplo siguiente se muestra cómo construir un objeto de la clase CMFCDropDownToolbarButton
. Este fragmento de código forma parte del ejemplo de demostración de Visual Studio.
// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));
CMFCDropDownToolbarButton::DropDownToolbar
Abre una barra de herramientas desplegable.
BOOL DropDownToolbar(CWnd* pWnd);
Parámetros
pWnd
[in] Ventana primaria del marco desplegable o NULL para usar la ventana primaria del botón de la barra de herramientas desplegable.
Valor devuelto
Distinto de cero si el método es correcto; en caso contrario, 0.
Comentarios
El método CMFCDropDownToolbarButton::OnClick llama a este método para abrir la barra de herramientas desplegable cuando el usuario presiona y mantiene presionado el botón de la barra de herramientas.
Estos métodos crean la barra de herramientas desplegable mediante el método CMFCDropDownFrame::Create. Si la barra de herramientas primaria está acoplada verticalmente, este método coloca la barra de herramientas desplegable en el lado izquierdo o derecho de la barra de herramientas primaria, dependiendo del ajuste. De lo contrario, este método coloca la barra de herramientas desplegable debajo de la barra de herramientas primaria.
Este método produce un error si pWnd es NULL y el botón de la barra de herramientas desplegable no tiene una ventana primaria.
CMFCDropDownToolbarButton::ExportToMenuButton
Copia el texto del botón de la barra de herramientas en un menú.
virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;
Parámetros
menuButton
[in] Referencia al botón de menú de destino.
Valor devuelto
Distinto de cero si el método es correcto; de lo contrario, 0.
Comentarios
Este método llama a la implementación de la clase base (CMFCToolBarButton::ExportToMenuButton) y, a continuación, anexa al botón de menú de destino un menú emergente que contiene cada elemento de menú de la barra de herramientas de este botón. Este método no anexa submenús al menú emergente.
Este método produce un error si la barra de herramientas primaria, m_pToolBar
, es NULL o la implementación de la clase base devuelve FALSE.
CMFCDropDownToolbarButton::GetDropDownToolBar
Recupera la barra de herramientas desplegable asociada al botón.
CMFCToolBar* GetDropDownToolBar() const;
Valor devuelto
La barra de herramientas desplegable asociada al botón.
Comentarios
Este método devuelve el miembro de datos m_pToolBar
.
CMFCDropDownToolbarButton::IsDropDown
Determina si la barra de herramientas desplegable está abierta actualmente.
BOOL IsDropDown() const;
Valor devuelto
Distinto de cero si la barra de herramientas desplegable está abierta actualmente; de lo contrario, 0.
Comentarios
El marco abre la barra de herramientas desplegable mediante el método CMFCDropDownToolbarButton::D ropDownToolbar. El marco cierra la barra de herramientas desplegable cuando el usuario presiona el botón izquierdo del mouse en el área que no es cliente de la barra de herramientas desplegable.
CMFCDropDownToolbarButton::IsExtraSize
Determina si el botón se puede mostrar con un borde extendido.
virtual BOOL IsExtraSize() const;
Valor devuelto
Distinto de cero si el botón de la barra de herramientas se puede mostrar con un borde extendido; de lo contrario, 0.
Comentarios
Para obtener más información sobre los bordes extendidos, vea CMFCToolBarButton::IsExtraSize.
CMFCDropDownToolbarButton::m_uiShowBarDelay
Especifica el período de tiempo que un usuario debe mantener presionado el botón del mouse antes de que aparezca la barra de herramientas desplegable.
static UINT m_uiShowBarDelay;
Comentarios
El tiempo de retraso se mide en milisegundos. El valor predeterminado es 500. Puede establecer otro retraso cambiando el valor de este miembro de datos compartido.
CMFCDropDownToolbarButton::OnCalculateSize
Lo llama el marco para calcular el tamaño del botón para el contexto de dispositivo y el estado de acoplamiento especificados.
virtual SIZE OnCalculateSize(
CDC* pDC,
const CSize& sizeDefault,
BOOL bHorz);
Parámetros
pDC
[in] Contexto de dispositivo que muestra el botón.
sizeDefault
[in] Tamaño predeterminado del botón.
bHorz
[in] Estado de acoplamiento de la barra de herramientas primaria. Este parámetro es TRUE si la barra de herramientas está acoplada de manera horizontal o si flota, o bien FALSE si la barra de herramientas está acoplada de manera vertical.
Valor devuelto
Estructura SIZE
que contiene las dimensiones del botón, en píxeles.
Comentarios
Este método extiende la implementación de la clase base (CMFCToolBarButton::OnCalculateSize) agregando el ancho de la flecha desplegable a la dimensión horizontal del tamaño del botón.
CMFCDropDownToolbarButton::OnChangeParentWnd
Lo llama el marco cuando el botón se inserta en una barra de herramientas nueva.
virtual void OnChangeParentWnd(CWnd* pWndParent);
Parámetros
pWndParent
[in] Ventana primaria nueva.
Comentarios
Este método invalida la implementación de la clase base (CMFCToolBarButton::OnChangeParentWnd) borrando la etiqueta de texto (CMFCToolBarButton::m_strText) y estableciendo los miembros de datos CMFCToolBarButton::m_bText y CMFCToolBarButton::m_bUserButton en FALSE.
CMFCDropDownToolbarButton::OnClick
Lo llama el marco cuando el usuario pulsa el botón del mouse.
virtual BOOL OnClick(
CWnd* pWnd,
BOOL bDelay = TRUE);
Parámetros
pWnd
[in] Ventana primaria del botón de la barra de herramientas.
bDelay
[in] TRUE si el mensaje se debe manipular con un retraso.
Valor devuelto
Distinto de cero si el botón procesa el mensaje de clic; de lo contrario, 0.
Comentarios
Este método extiende la implementación de la clase base, CMFCToolBarButton::OnClick, actualizando el estado de la barra de herramientas desplegable.
Cuando un usuario hace clic en el botón de la barra de herramientas, este método crea un temporizador que espera el tiempo especificado por el miembro de datos CMFCDropDownToolbarButton::m_uiShowBarDelay y, a continuación, abre la barra de herramientas desplegable mediante el método CMFCDropDownToolbarButton::D ropDownToolbar. Este método cierra la barra de herramientas desplegable la segunda vez que el usuario hace clic en el botón de la barra de herramientas.
CMFCDropDownToolbarButton::OnClickUp
Lo llama el marco cuando el usuario suelta el botón del mouse.
virtual BOOL OnClickUp();
Valor devuelto
Distinto de cero si el botón procesa el mensaje de clic; de lo contrario, 0.
Comentarios
Este método extiende la implementación de la clase base, CMFCToolBarButton::OnClickUp, actualizando el estado de la barra de herramientas desplegable.
Este método detiene el temporizador de la barra de herramientas desplegable si está activo. Cierra la barra de herramientas desplegable si está abierta.
Para obtener más información sobre la barra de herramientas desplegable y el temporizador de la barra de herramientas desplegable, vea CMFCDropDownToolbarButton::OnClick.
CMFCDropDownToolbarButton::OnContextHelp
Lo llama el marco cuando la barra de herramientas primaria controla un mensaje de WM_HELPHITTEST.
virtual BOOL OnContextHelp(CWnd* pWnd);
Parámetros
pWnd
[in] Ventana primaria del botón de la barra de herramientas.
Valor devuelto
Distinto de cero si el botón procesa el mensaje de ayuda; de lo contrario, 0.
Comentarios
Este método extiende la implementación de la clase base (CMFCToolBarButton::OnContextHelp) llamando al método CMFCDropDownToolbarButton::OnClick con bDelay establecido en FALSE. Este método devuelve el valor devuelto por CMFCDropDownToolbarButton::OnClick.
Para más información sobre el mensaje WM_HELPHITTEST, consulte TN028: Compatibilidad con la ayuda contextual.
CMFCDropDownToolbarButton::OnCustomizeMenu
Modifica el menú proporcionado cuando la aplicación muestra un menú contextual en la barra de herramientas primaria.
virtual BOOL OnCustomizeMenu(CMenu* pMenu);
Parámetros
pMenu
[in] Menú que se va a personalizar.
Valor devuelto
Este método devuelve TRUE.
Comentarios
Este método extiende la implementación de la clase base (CMFCToolBarButton::OnCustomizeMenu) deshabilitando los siguientes elementos de menú:
Imagen del botón Copiar
Apariencia del botón
Imagen
Texto
Imagen y texto
Invalide este método para modificar el menú contextual que el marco muestra en modo de personalización.
CMFCDropDownToolbarButton::OnDraw
Lo llama el marco para dibujar el botón mediante las opciones y los estilos especificados.
virtual void OnDraw(
CDC* pDC,
const CRect& rect,
CMFCToolBarImages* pImages,
BOOL bHorz = TRUE,
BOOL bCustomizeMode = FALSE,
BOOL bHighlight = FALSE,
BOOL bDrawBorder = TRUE,
BOOL bGrayDisabledButtons = TRUE);
Parámetros
pDC
[in] Contexto de dispositivo que muestra el botón.
rect
[in] Rectángulo delimitador del botón.
pImages
[in] Colección de imágenes de barra de herramientas asociada al botón.
bHorz
[in] Estado de acoplamiento de la barra de herramientas primaria. Este parámetro es TRUE cuando el botón está acoplado de manera horizontal y FALSE cuando lo está verticalmente.
bCustomizeMode
[in] Especifica si la barra de herramientas está en modo de personalización. Este parámetro es TRUE cuando la barra de herramientas está en modo de personalización y FALSE cuando no lo está.
bHighlight
[in] Especifica si el botón está resaltado. Este parámetro es TRUE cuando el botón está resaltado y FALSE cuando no lo está.
bDrawBorder
[in] Especifica si el botón debe mostrar su borde. Este parámetro es TRUE cuando se debe mostrar el borde del botón y FALSE cuando no es así.
bGrayDisabledButtons
[in] Especifica si los botones deshabilitados se deben sombrear o si se debe usar la colección de imágenes deshabilitadas. Este parámetro es TRUE cuando se deben sombrear los botones deshabilitados y FALSE cuando este método debe usar la colección de imágenes deshabilitadas.
Comentarios
Invalide este método para personalizar el dibujo del botón de la barra de herramientas.
CMFCDropDownToolbarButton::OnDrawOnCustomizeList
Lo llama el marco para dibujar el botón en el panel Comandos del cuadro de diálogo Personalizar.
virtual int OnDrawOnCustomizeList(
CDC* pDC,
const CRect& rect,
BOOL bSelected);
Parámetros
pDC
[in] Contexto de dispositivo que muestra el botón.
rect
[in] Rectángulo delimitador del botón.
bSelected
[in] Si el botón está seleccionado. Si el parámetro es TRUE, el botón está seleccionado. Si el parámetro es FALSE, el botón no está seleccionado.
Valor devuelto
Ancho, en píxeles, del botón en el contexto de dispositivo especificado.
Comentarios
El cuadro de diálogo de personalización (pestaña Comandos) llama a este método cuando el botón se debe mostrar en el cuadro de lista dibujado por el propietario.
Este método extiende la implementación de la clase base (CMFCToolBarButton::OnDrawOnCustomizeList) cambiando la etiqueta de texto del botón al nombre del botón (es decir, al valor del parámetro lpszName que pasó al constructor).
CMFCDropDownToolbarButton::Serialize
Lee este objeto desde un archivo o lo escribe en un archivo.
virtual void Serialize(CArchive& ar);
Parámetros
Ar
[in] Objeto CArchive
del que se va a serializar o al que se va a serializar.
Comentarios
Este método extiende la implementación de la clase base (CMFCToolBarButton::Serialize) serializando el identificador de recurso de la barra de herramientas primaria. Cuando el archivo se carga (CArchive::IsLoading devuelve un valor distinto de cero), este método establece el miembro de datos m_pToolBar
en la barra de herramientas que contiene el identificador de recurso serializado.
CMFCDropDownToolbarButton::SetDefaultCommand
Establece el comando predeterminado que usa el marco cuando un usuario hace clic en el botón.
void SetDefaultCommand(UINT uiCmd);
Parámetros
uiCmd
[in] El id. del comando predeterminado.
Comentarios
Llame a este método para especificar un comando predeterminado que ejecuta el marco cuando el usuario hace clic en el botón. Un elemento con el identificador de comando especificado por uiCmd debe estar ubicado en la barra de herramientas desplegable primaria.
Consulte también
Gráfico de jerarquías
Clases
CMFCDropDownToolBar (clase)
CMFCToolBar (clase)
CMFCToolBarMenuButton (clase)
Tutorial: Poner controles en las barras de herramientas