Compartir a través de


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

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

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

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