Compartir a través de


CMFCCaptionBar (clase)

Un objeto CMFCCaptionBar es una barra de control que puede mostrar tres elementos: un botón, una etiqueta de texto y un mapa de bits. Puede mostrar un solo elemento de cada tipo al mismo tiempo. Puede alinear cada elemento al borde izquierdo o derecho del control o al centro. También puede aplicar un estilo plano o 3D a los bordes superior e inferior de la barra de título.

Sintaxis

class CMFCCaptionBar : public CPane

Miembros

Métodos públicos

Nombre Descripción
CMFCCaptionBar::Create Crea el control de barra de títulos y lo adjunta al objeto CMFCCaptionBar.
CMFCCaptionBar::D oesAllowDynInsertBefore Indica si otro panel se puede insertar dinámicamente entre la barra de título y su marco primario. (Invalida CBasePane::DoesAllowDynInsertBefore.)
CMFCCaptionBar::EnableButton Habilita o deshabilita el botón en la barra de títulos.
CMFCCaptionBar::GetAlignment Devuelve la alineación del elemento especificado.
CMFCCaptionBar::GetBorderSize Devuelve el tamaño del borde de la barra de títulos.
CMFCCaptionBar::GetButtonRect Recupera el rectángulo delimitador del botón en la barra de títulos.
CMFCCaptionBar::GetMargin Devuelve la distancia entre el borde de los elementos de la barra de títulos y el borde del control de barra de títulos.
CMFCCaptionBar::IsMessageBarMode Especifica si la barra de títulos está en modo de barra de mensajes.
CMFCCaptionBar::RemoveBitmap Quita la imagen de mapa de bits de la barra de títulos.
CMFCCaptionBar::RemoveButton Quita el botón de la barra de títulos.
CMFCCaptionBar::RemoveIcon Quita el icono de la barra de títulos.
CMFCCaptionBar::RemoveText Quita la etiqueta de texto de la barra de títulos.
CMFCCaptionBar::SetBitmap Establece la imagen de mapa de bits para la barra de títulos.
CMFCCaptionBar::SetBorderSize Establece el tamaño del borde de la barra de títulos.
CMFCCaptionBar::SetButton Establece el botón de la barra de títulos.
CMFCCaptionBar::SetButtonPressed Especifica si el botón permanece presionado.
CMFCCaptionBar::SetButtonToolTip Establece la información sobre herramientas del botón.
CMFCCaptionBar::SetFlatBorder Establece el estilo del borde de la barra de títulos.
CMFCCaptionBar::SetIcon Establece el icono de una barra de títulos.
CMFCCaptionBar::SetImageToolTip Establece la información sobre herramientas de la imagen para la barra de títulos.
CMFCCaptionBar::SetMargin Establece la distancia entre el borde de los elementos de la barra de títulos y el borde del control de barra de títulos.
CMFCCaptionBar::SetText Establece la etiqueta de texto de la barra de títulos.

Métodos protegidos

Nombre Descripción
CMFCCaptionBar::OnDrawBackground El marco de trabajo llama a esta clase para rellenar el fondo de la barra de títulos.
CMFCCaptionBar::OnDrawBorder El marco de trabajo llama a esta clase para dibujar el borde de la barra de títulos.
CMFCCaptionBar::OnDrawButton El marco de trabajo llama a esta clase para dibujar el botón de la barra de títulos.
CMFCCaptionBar::OnDrawImage El marco de trabajo llama a esta clase para dibujar la imagen de la barra de títulos.
CMFCCaptionBar::OnDrawText El marco de trabajo llama a esta clase para dibujar el texto de la barra de títulos.

Miembros de datos

Nombre Descripción
CMFCCaptionBar::m_clrBarBackground Color de fondo de la barra de título.
CMFCCaptionBar::m_clrBarBorder Color del borde de la barra de título.
CMFCCaptionBar::m_clrBarText Color del texto de la barra de título.

Comentarios

Para crear una barra de título, siga estos pasos:

  1. Construya el objeto CMFCCaptionBar. Normalmente, agregaría la barra de título a una clase de ventana de marco.

  2. Llame al método CMFCCaptionBar::Create para crear el control de la barra de título y adjuntarlo al objeto CMFCCaptionBar.

  3. Llame a CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon y CMFCCaptionBar::SetBitmap para establecer los elementos de la barra de título.

Al establecer el elemento de botón, debe asignar un identificador de comando al botón. Cuando el usuario hace clic en el botón, la barra de título enruta los mensajes de WM_COMMAND que tienen este identificador a la ventana de marco principal.

La barra de título también puede funcionar en modo de barra de mensajes, que emula la barra de mensajes que aparece en las aplicaciones de Microsoft Office 2007. En el modo de barra de mensajes, la barra de título muestra un mapa de bits, un mensaje y un botón (que normalmente abre un cuadro de diálogo). Puede asignar información sobre herramientas al mapa de bits.

Para habilitar el modo de barra de mensajes, llame a CMFCCaptionBar::Create y establezca el cuarto parámetro (bIsMessageBarMode) en TRUE.

Ejemplo

En el siguiente ejemplo se muestra cómo usar los distintos métodos en la clase CMFCCaptionBar . En el ejemplo se muestra cómo crear el control de barra de título, cómo establecer un borde 3D de la barra de título, cómo establecer la distancia, en píxeles, entre el borde de los elementos de la barra de título y el borde del control de barra de título, cómo establecer el botón de la barra de título, cómo establecer la información sobre herramientas para el botón, cómo establecer la etiqueta de texto para la barra de título, cómo establecer la imagen de mapa de bits para la barra de título y cómo establecer la información sobre herramientas de la imagen en la barra de título. Este fragmento de código forma parte del ejemplo de demostración de MS Office 2007.

CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
   // The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
   if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
   {
      TRACE0("Failed to create caption bar\n");
      return FALSE;
   }

   m_wndMessageBar.SetFlatBorder(FALSE);
   m_wndMessageBar.SetMargin(10);
   m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
   m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));

   m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);

   m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
   m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));

   return TRUE;
}

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCCaptionBar

Requisitos

Encabezado: afxcaptionbar.h

CMFCCaptionBar::Create

Crea el control de barra de títulos y lo adjunta al objeto CMFCCaptionBar.

BOOL Create(
    DWORD dwStyle,
    CWnd* pParentWnd,
    UINT uID,
    int nHeight=-1,
    BOOL bIsMessageBarMode=FALSE);

Parámetros

dwStyle
Combinación OR lógica de los estilos de la barra de título.

pParentWnd
Ventana primaria del control de barra de título.

uID
Identificador del control de la barra de título.

nHeight
Alto, en píxeles, del control de la barra de título. Si es -1, el alto se calcula según el alto del icono, el texto y el botón que muestra el control de barra de título.

bIsMessageBarMode
TRUE si la barra de título está en el modo de barra de mensajes; FALSE en caso contrario.

Valor devuelto

TRUE si el control de barra de título se crea correctamente; FALSE en caso contrario.

Comentarios

El objeto CMFCCaptionBar se construye en dos pasos. En primer lugar, llame al constructor y, a continuación, llame al método Create, que crea el control de Windows y lo adjunta al objeto CMFCCaptionBar.

CMFCCaptionBar::D oesAllowDynInsertBefore

Indica si otro panel se puede insertar dinámicamente entre la barra de título y su marco primario.

virtual BOOL DoesAllowDynInsertBefore() const;

Valor devuelto

Devuelve FALSE a menos que se invalide.

Comentarios

CMFCCaptionBar::EnableButton

Habilita o deshabilita el botón en la barra de títulos.

void EnableButton(BOOL bEnable=TRUE);

Parámetros

bEnable
[in] TRUE para habilitar el botón; FALSE para deshabilitarlo.

CMFCCaptionBar::GetAlignment

Devuelve la alineación del elemento especificado.

BarElementAlignment GetAlignment(BarElement elem);

Parámetros

elem
[in] Elemento de barra de título para el que se va a recuperar la alineación.

Valor devuelto

Alineación de un elemento, como un botón, un mapa de bits, texto o un icono.

Comentarios

La alineación del elemento puede ser uno de los siguientes valores:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::GetBorderSize

Devuelve el tamaño del borde de la barra de títulos.

int GetBorderSize() const;

Valor devuelto

Tamaño, en píxeles, del borde.

CMFCCaptionBar::GetButtonRect

Recupera el rectángulo delimitador del botón en la barra de títulos.

CRect GetButtonRect() const;

Valor devuelto

Objeto CRect que contiene las coordenadas del rectángulo delimitador del botón en la barra de títulos.

CMFCCaptionBar::GetMargin

Devuelve la distancia entre el borde de los elementos de la barra de títulos y el borde del control de barra de títulos.

int GetMargin() const;

Valor devuelto

Distancia, en píxeles, entre el borde de los elementos de la barra de título y el borde del control de barra de título.

CMFCCaptionBar::IsMessageBarMode

Especifica si la barra de títulos está en modo de barra de mensajes.

BOOL IsMessageBarMode() const;

Valor devuelto

TRUE si la barra de título está en el modo de barra de mensajes; FALSE en caso contrario.

Comentarios

En el modo de barra de mensajes, la barra de título muestra una imagen con información sobre herramientas, un texto de mensaje y un botón.

CMFCCaptionBar::m_clrBarBackground

Color de fondo de la barra de título.

COLORREF m_clrBarBackground

CMFCCaptionBar::m_clrBarBorder

Color del borde de la barra de título.

COLORREF m_clrBarBorder

CMFCCaptionBar::m_clrBarText

Color del texto de la barra de título.

COLORREF m_clrBarText

CMFCCaptionBar::OnDrawBackground

El marco de trabajo llama a esta clase para rellenar el fondo de la barra de títulos.

virtual void OnDrawBackground(
    CDC* pDC,
    CRect rect);

Parámetros

pDC
[in] Puntero al contexto del dispositivo de la barra de título.

rect
[in] Rectángulo delimitador que se va a rellenar.

Comentarios

Se llama al método OnDrawBackground cuando se va a rellenar el fondo de la barra de título. La implementación predeterminada rellena el fondo mediante el color CMFCCaptionBar::m_clrBarBackground.

Invalide este método en una clase derivada CMFCCaptionBar para personalizar la apariencia de la barra de título.

CMFCCaptionBar::OnDrawBorder

El marco de trabajo llama a esta clase para dibujar el borde de la barra de títulos.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect rect);

Parámetros

pDC
[in] Contexto de dispositivo que se usa para mostrar los bordes.

rect
[in] Rectángulo delimitador.

Comentarios

De forma predeterminada, los bordes tienen el estilo plano.

Invalide este método en una clase derivada CMFCCaptionBar para personalizar la apariencia de los bordes de la barra de título.

CMFCCaptionBar::OnDrawButton

El marco de trabajo llama a esta clase para dibujar el botón de la barra de títulos.

virtual void OnDrawButton(
    CDC* pDC,
    CRect rect,
    const CString& strButton,
    BOOL bEnabled);

Parámetros

pDC
[in] Puntero a un contexto de dispositivo que se usa para mostrar el botón.

rect
[in] Rectángulo delimitador del botón.

strButton
[in] Etiqueta de texto del botón.

bEnabled
[in] TRUE si el botón está habilitado; FALSE en caso contrario.

Comentarios

Invalide este método en una clase derivada CMFCCaptionBar para personalizar la apariencia del botón de la barra de título.

CMFCCaptionBar::OnDrawImage

El marco de trabajo llama a esta clase para dibujar la imagen de la barra de títulos.

virtual void OnDrawImage(
    CDC* pDC,
    CRect rect);

Parámetros

pDC
[in] Puntero a un contexto de dispositivo que se usa para mostrar la imagen.

rect
[in] Especifica el rectángulo delimitador de la imagen.

Comentarios

Invalide este método en una clase derivada CMFCCaptionBar para personalizar la apariencia de la imagen.

CMFCCaptionBar::OnDrawText

El marco de trabajo llama a esta clase para dibujar el texto de la barra de títulos.

virtual void OnDrawText(
    CDC* pDC,
    CRect rect,
    const CString& strText);

Parámetros

pDC
[in] Puntero a un contexto de dispositivo que se usa para mostrar el botón.

rect
[in] Rectángulo delimitador del texto.

strText
[in] Cadena de texto que se va a mostrar.

Comentarios

La implementación predeterminada muestra el texto mediante CDC::DrawText y el color CMFCCaptionBar::m_clrBarText.

Invalide este método en una clase derivada CMFCCaptionBar para personalizar la apariencia del texto de la barra de título.

CMFCCaptionBar::RemoveBitmap

Quita la imagen de mapa de bits de la barra de títulos.

void RemoveBitmap();

CMFCCaptionBar::RemoveButton

Quita el botón de la barra de títulos.

void RemoveButton();

Comentarios

El diseño de los elementos de la barra de título se ajusta automáticamente.

CMFCCaptionBar::RemoveIcon

Quita el icono de la barra de títulos.

void RemoveIcon();

CMFCCaptionBar::RemoveText

Quita la etiqueta de texto de la barra de títulos.

void RemoveText();

CMFCCaptionBar::SetBitmap

Establece la imagen de mapa de bits para la barra de títulos.

void SetBitmap(
    HBITMAP hBitmap,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

void SetBitmap(
    UINT uiBmpResID,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

Parámetros

hBitmap
[in] Manipulador del mapa de bits que se va a establecer.

clrTransparent
[in] Valor RGB que especifica el color transparente del mapa de bits.

bStretch
[in] Si es TRUE, el mapa de bits se extiende si no cabe en el rectángulo delimitador de imágenes. De lo contrario, el mapa de bits no se extiende.

bmpAlignment
[in] Alineación del mapa de bits.

Comentarios

Use este método para establecer un mapa de bits en una barra de título.

El mapa de bits anterior se destruye automáticamente. Si la barra de título muestra un icono porque llamó al método CMFCCaptionBar::SetIcon, el mapa de bits no se mostrará a menos que quite el icono con la llamada a CMFCCaptionBar::RemoveIcon.

El mapa de bits se alinea según lo especificado por el parámetro bmpAlignment. Este parámetro puede ser uno de los siguientes valores BarElementAlignment:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetBorderSize

Establece el tamaño del borde de la barra de títulos.

void SetBorderSize(int nSize);

Parámetros

nSize
[in] Nuevo tamaño, en píxeles, del borde de la barra de título.

CMFCCaptionBar::SetButton

Establece el botón de la barra de títulos.

void SetButton(
    LPCTSTR lpszLabel,
    UINT uiCmdUI,
    BarElementAlignment btnAlignmnet=ALIGN_LEFT,
    BOOL bHasDropDownArrow=TRUE);

Parámetros

lpszLabel
Etiqueta de comando del botón.

uiCmdUI
Identificador del comando del botón.

btnAlignmnet
Alineación del botón.

bHasDropDownArrow
TRUE si el botón muestra una flecha desplegable, FALSE en caso contrario.

CMFCCaptionBar::SetButtonPressed

Especifica si el botón permanece presionado.

void SetButtonPressed(BOOL bPresed=TRUE);

Parámetros

bPresed
TRUE si el botón mantiene su estado presionado, FALSE en caso contrario.

CMFCCaptionBar::SetButtonToolTip

Establece la información sobre herramientas del botón.

void SetButtonToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Parámetros

lpszToolTip
[in] Título de la información sobre herramientas.

lpszDescription
[in] Descripción de la información sobre herramientas.

CMFCCaptionBar::SetFlatBorder

Establece el estilo del borde de la barra de títulos.

void SetFlatBorder(BOOL bFlat=TRUE);

Parámetros

bFlat
[in] TRUE si el borde de una barra de título es plano. FALSE si el borde es 3D.

CMFCCaptionBar::SetIcon

Establece el icono de una barra de títulos.

void SetIcon(
    HICON hIcon,
    BarElementAlignment iconAlignment=ALIGN_RIGHT);

Parámetros

hIcon
[in] Manipulador del icono que se va a establecer.

iconAlignment
[in] Alineación del icono.

Comentarios

Las barras de título pueden mostrar iconos o mapas de bits. Consulte CMFCCaptionBar::SetBitmap para obtener información sobre cómo mostrar un mapa de bits. Si establece un icono y un mapa de bits, siempre se muestra el icono. Llame a CMFCCaptionBar::RemoveIcon para quitar un icono de la barra de título.

El icono se alinea según el parámetro iconAlignment. Puede tener uno de los siguientes valores BarElementAlignment:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetImageToolTip

Establece la información sobre herramientas en la imagen para la barra de título.

void SetImageToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Parámetros

lpszToolTip
[in] Texto de la información sobre herramientas.

lpszDescription
[in] Descripción de la información sobre herramientas.

CMFCCaptionBar::SetMargin

Establece la distancia entre el borde de los elementos de la barra de títulos y el borde del control de barra de títulos.

void SetMargin(int nMargin);

Parámetros

nMargin
[in] Distancia, en píxeles, entre el borde de los elementos de la barra de título y el borde del control de barra de título.

CMFCCaptionBar::SetText

Establece la etiqueta de texto de la barra de títulos.

void SetText(
    const CString& strText,
    BarElementAlignment textAlignment=ALIGN_RIGHT);

Parámetros

strText
[in] Cadena de texto que se va a establecer.

textAlignment
[in] Alineación del texto.

Comentarios

La etiqueta de texto se alinea según lo especificado por el parámetro textAlignment. Puede tener uno de los siguientes valores BarElementAlignment:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

Consulte también

Gráfico de jerarquías
Clases