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:
Construya el objeto
CMFCCaptionBar
. Normalmente, agregaría la barra de título a una clase de ventana de marco.Llame al método CMFCCaptionBar::Create para crear el control de la barra de título y adjuntarlo al objeto
CMFCCaptionBar
.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
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