CMFCStatusBar (Clase)
La clase CMFCStatusBar
implementa una barra de estado similar a la clase CStatusBar
. Sin embargo, la clase CMFCStatusBar
tiene características que no ofrece la clase CStatusBar
, tales como la capacidad para mostrar imágenes, animaciones y barras de progreso y la capacidad de responder a los doble clics del mouse.
Para obtener información más detallada, consulta el código fuente que se ubica en la carpeta VC\atlmfc\src\mfc de la instalación de Visual Studio.
Sintaxis
class CMFCStatusBar : public CPane
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CMFCStatusBar::CalcFixedLayout | (Invalida CBasePane::CalcFixedLayout). |
CMFCStatusBar::CommandToIndex | |
CMFCStatusBar::Create | Crea una barra de control y la adjunta al objeto CPane. (Invalida CPane::Create). |
CMFCStatusBar::CreateEx | Crea una barra de control y la adjunta al objeto CPane. (Invalida CPane::CreateEx). |
CMFCStatusBar::DoesAllowDynInsertBefore | Determina si se puede insertar otro panel dinámicamente entre este panel y el marco primario. (Invalida CBasePane::DoesAllowDynInsertBefore.) |
CMFCStatusBar::EnablePaneDoubleClick | Habilita o deshabilita el control de los doble clics del mouse en la barra de estado. |
CMFCStatusBar::EnablePaneProgressBar | Muestra una barra de progreso en el panel especificado. |
CMFCStatusBar::GetCount | Devuelve el número de paneles de la barra de estado. |
CMFCStatusBar::GetDrawExtendedArea | |
CMFCStatusBar::GetExtendedArea | |
CMFCStatusBar::GetItemID | |
CMFCStatusBar::GetItemRect | |
CMFCStatusBar::GetPaneInfo | |
CMFCStatusBar::GetPaneProgress | |
CMFCStatusBar::GetPaneStyle | Devuelve el estilo del panel. (Invalida CBasePane::GetPaneStyle). |
CMFCStatusBar::GetPaneText | |
CMFCStatusBar::GetPaneWidth | Devuelve el ancho, en píxeles, del panel especificado de la barra de estado. |
CMFCStatusBar::GetTipText | Devuelve el texto de información sobre herramientas del panel especificado de la barra de estado. |
CMFCStatusBar::InvalidatePaneContent | Invalida el panel especificado y vuelve a dibujar su contenido. |
CMFCStatusBar::PreCreateWindow | Lo llama el marco antes de crear la ventana de Windows asociada a este objeto CWnd . (Invalida CWnd::PreCreateWindow). |
CMFCStatusBar::SetDrawExtendedArea | |
CMFCStatusBar::SetIndicators | |
CMFCStatusBar::SetPaneAnimation | Asigna una animación al panel especificado. |
CMFCStatusBar::SetPaneBackgroundColor | Establece el color de fondo del panel especificado de la barra de estado. |
CMFCStatusBar::SetPaneIcon | Establece el icono de indicador del panel especificado de la barra de estado. |
CMFCStatusBar::SetPaneInfo | |
CMFCStatusBar::SetPaneProgress | Establece el progreso actual de la barra de progreso para el panel especificado de la barra de estado. |
CMFCStatusBar::SetPaneStyle | Establece el estilo del panel. (Invalida CBasePane::SetPaneStyle). |
CMFCStatusBar::SetPaneText | |
CMFCStatusBar::SetPaneTextColor | Establece el color de texto del panel especificado de la barra de estado. |
CMFCStatusBar::SetPaneWidth | Establece el ancho, en píxeles, del panel especificado de la barra de estado. |
CMFCStatusBar::SetTipText | Establece el texto de información sobre herramientas del panel especificado de la barra de estado. |
Métodos protegidos
Nombre | Descripción |
---|---|
CMFCStatusBar::OnDrawPane | Lo llama el marco cuando vuelve a dibujar el panel de la barra de estado. |
Comentarios
En el diagrama siguiente se muestra una ilustración de la barra de estado de la aplicación Ejemplo de demostración de la barra de estado.
Ejemplos
En el ejemplo siguiente se muestran las variables locales que usa la aplicación para llamar a varios métodos de la clase CMFCStatusBar
. Estas variables se declaran en StatusBarDemoView.h. El marco principal se declara en MainFrm.h, el documento se declara en StatusBarDemoDoc.h y la vista se declara en StatusBarDemoView.h. Este fragmento de código forma parte del ejemplo de demostración de la barra de estado.
int m_nProgressCurr;
BOOL m_bInProgress;
CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;
CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;
En el ejemplo siguiente se muestra cómo obtener una referencia al objeto CMFCStatusBar
introduciendo el método GetStatusBar
en MainFrm.h y, después, llamando a este método desde el método GetStatusBar
en StatusBarDemoView.h. Este fragmento de código forma parte del ejemplo de demostración de la barra de estado.
// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}
En el siguiente ejemplo se muestra cómo llamar a varios métodos de la clase CMFCStatusBar
en StatusBarDemoView.cpp. Las constantes se declaran en MainFrm.h. En el ejemplo se muestra cómo establecer el icono, establecer el texto de información sobre herramientas del panel de la barra de estado, mostrar una barra de progreso en el panel especificado, asignar una animación al panel especificado, establecer el texto y el ancho del panel de la barra de estado y establecer el indicador de progreso actual de la barra de progreso para el panel de la barra de estado. Este fragmento de código forma parte del ejemplo de demostración de la barra de estado.
// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);
Jerarquía de herencia
Requisitos
Encabezado: afxstatusbar.h
CMFCStatusBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Parámetros
[in] bStretch
[in] bHorz
Valor devuelto
Comentarios
CMFCStatusBar::CommandToIndex
int CommandToIndex(UINT nIDFind) const;
Parámetros
[in] nIDFind
Valor devuelto
Comentarios
CMFCStatusBar::Create
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parámetros
[in] pParentWnd
[in] dwStyle
[in] nID
Valor devuelto
Comentarios
CMFCStatusBar::CreateEx
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parámetros
[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] nID
Valor devuelto
Comentarios
CMFCStatusBar::DoesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
Valor devuelto
Comentarios
CMFCStatusBar::EnablePaneDoubleClick
Habilita o deshabilita el control de los doble clics del mouse en la barra de estado.
void EnablePaneDoubleClick(BOOL bEnable=TRUE);
Parámetros
bEnable
[in] Si es TRUE, habilite el procesamiento del doble clic del mouse. De lo contrario, deshabilítelo.
Comentarios
Si la barra de estado está habilitada para procesar doble clics, Windows envía la notificación WM_COMMAND junto con un identificador de recurso al propietario de la barra de estado cada vez que el usuario hace doble clic en el panel de la barra de estado.
CMFCStatusBar::EnablePaneProgressBar
Muestra una barra de progreso en el panel especificado.
void EnablePaneProgressBar(
int nIndex,
long nTotal=100,
BOOL bDisplayText=FALSE,
COLORREF clrBar=-1,
COLORREF clrBarDest=-1,
COLORREF clrProgressText=-1);
Parámetros
nIndex
[in] Especifica el índice del panel cuya barra de progreso se va a habilitar.
nTotal
[in] Especifica el valor máximo de la barra de progreso.
bDisplayText
[in] Especifica si la barra de progreso debe mostrar el valor de progreso actual.
clrBar
[in] Especifica el color de fondo de la barra de progreso.
clrBarDest
[in] Especifica el color secundario del fondo de la barra de progreso. Use un valor diferente de clrBar para rellenar con un color combinado en un degradado.
clrProgressText
[in] Especifica el color del texto de la barra de progreso.
Comentarios
Si quiere deshabilitar la llamada EnablePaneProgressBar
a la barra de progreso con nTotal establecido en -1. De forma predeterminada, nTotal se establece en 100. Por lo tanto, no necesita cálculos adicionales para mostrar el progreso como porcentaje.
Debe pasar valores diferentes para clrBar y clrBarDest para que el color de fondo de la barra de progreso muestre un color combinado en un degradado. .
Para establecer el progreso actual, llame al método CMFCStatusBar::SetPaneProgress.
CMFCStatusBar::GetCount
Recupera el número de paneles de la barra de estado.
int GetCount() const;
Valor devuelto
Número de paneles de la barra de estado.
CMFCStatusBar::GetDrawExtendedArea
BOOL GetDrawExtendedArea() const;
Valor devuelto
Comentarios
CMFCStatusBar::GetExtendedArea
virtual BOOL GetExtendedArea(CRect& rect) const;
Parámetros
[in] rect
Valor devuelto
Comentarios
CMFCStatusBar::GetItemID
UINT GetItemID(int nIndex) const;
Parámetros
[in] nIndex
Valor devuelto
Comentarios
CMFCStatusBar::GetItemRect
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Parámetros
[in] nIndex
[in] lpRect
Comentarios
CMFCStatusBar::GetPaneInfo
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Parámetros
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
Comentarios
CMFCStatusBar::GetPaneProgress
long GetPaneProgress(int nIndex) const;
Parámetros
[in] nIndex
Valor devuelto
Comentarios
CMFCStatusBar::GetPaneStyle
UINT GetPaneStyle(int nIndex) const;
Parámetros
[in] nIndex
Valor devuelto
Comentarios
CMFCStatusBar::GetPaneText
void GetPaneText(
int nIndex,
CString& s) const;
CString GetPaneText(int nIndex) const;
Parámetros
[in] nIndex
[in] s
Valor devuelto
Comentarios
CMFCStatusBar::GetPaneWidth
Recupera el ancho del panel de una barra de estado.
int GetPaneWidth(int nIndex) const;
Parámetros
nIndex
[in] Especifica el índice del panel de la barra de estado.
Valor devuelto
Ancho del panel de la barra de estado que especifica nIndex; de lo contrario, cero si no existe un panel de barra de estado.
CMFCStatusBar::GetTipText
Recupera el texto de información sobre herramientas del panel de una barra de estado.
CString GetTipText(int nIndex) const;
Parámetros
nIndex
[in] Especifica el índice del panel para el que se va a recuperar el texto de información sobre herramientas.
Valor devuelto
Texto de información sobre herramientas del panel de la barra de estado que especifica nIndex. De lo contrario, la cadena vacía si no existe un panel de barra de estado para el nIndex especificado o si su texto de información sobre herramientas está vacío.
CMFCStatusBar::InvalidatePaneContent
Invalida el panel de la barra de estado y vuelve a dibujar su contenido.
void InvalidatePaneContent(int nIndex);
Parámetros
nIndex
[in] Especifica el índice del panel cuyo contenido se va a invalidar y volver a dibujar.
Comentarios
Cuando se invalida la barra de estado, se marca para volverla a dibujar. Windows la vuelve a dibujar cuando el método UpdateWindow
envía un mensaje WM_PAINT al método OnPaint
.
CMFCStatusBar::OnDrawPane
Vuelve a dibujar el panel de la barra de estado.
virtual void OnDrawPane(
CDC* pDC,
CMFCStatusBarPaneInfo* pPane);
Parámetros
pDC
[in] Puntero a un contexto de dispositivo para dibujar.
pPane
[in] Puntero a una estructura CMFCStatusBarPaneInfo
que contiene la información sobre el panel que se va a volver a dibujar.
Comentarios
De forma predeterminada, OnDrawPane
vuelve a dibujar el panel mediante el contexto del dispositivo pDC según el estilo y el contenido del panel.
Invalida este método en una clase derivada CMFCStatusBar
para personalizar la apariencia de un panel.
CMFCStatusBar::PreCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parámetros
[in] cs
Valor devuelto
Comentarios
CMFCStatusBar::SetDrawExtendedArea
void SetDrawExtendedArea(BOOL bSet = TRUE);
Parámetros
[in] bSet
Comentarios
CMFCStatusBar::SetIndicators
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Parámetros
[in] lpIDArray
[in] nIDCount
Valor devuelto
Comentarios
CMFCStatusBar::SetPaneAnimation
Asigna una animación al panel especificado.
void SetPaneAnimation(
int nIndex,
HIMAGELIST hImageList,
UINT nFrameRate=500,
BOOL bUpdate=TRUE);
Parámetros
nIndex
[in] Especifica el índice del panel al que quiere asignarle una animación.
hImageList
[in] Especifica un identificador para la lista de imágenes que contiene los fotogramas de animación.
nFrameRate
[in] Especifica la velocidad de fotogramas, en milisegundos, para la animación.
bUpdate
[in] Si es TRUE, actualiza el contenido del panel inmediatamente. De lo contrario, el contenido del panel se actualiza cuando se invalida.
Comentarios
Si quiere deshabilitar la animación actual, llame a SetPaneAnimation
con hImageList
establecido en NULL.
CMFCStatusBar::SetPaneBackgroundColor
Establece el color de fondo del panel de la barra de estado.
void SetPaneBackgroundColor(
int nIndex,
COLORREF clrBackground=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parámetros
nIndex
[in] Especifica el índice del panel para el que se va a establecer un nuevo color de fondo.
clrBackground
[in] Especifica el nuevo color de fondo.
bUpdate
[in] Si es TRUE, actualiza el contenido del panel inmediatamente. De lo contrario, no actualice el contenido del panel hasta que otro método lo invalide.
CMFCStatusBar::SetPaneIcon
Establece el icono del panel de la barra de estado.
void SetPaneIcon(
int nIndex,
HICON hIcon,
BOOL bUpdate=TRUE);
void SetPaneIcon(
int nIndex,
HBITMAP hBmp,
COLORREF clrTransparent=RGB(255, 0, 255),
BOOL bUpdate=TRUE);
Parámetros
nIndex
[in] Especifica el índice del panel para el que se va a establecer la imagen.
hIcon
[in] Especifica un identificador para el icono que se va a establecer como imagen del panel.
bUpdate
[in] Especifica si se va a actualizar el contenido del panel inmediatamente.
hBmp
[in] Especifica un identificador para el mapa de bits que se va a establecer como la imagen del panel.
clrTransparent
[in] Especifica el color transparente del mapa de bits que indica hBmp.
Comentarios
Puede pasar HICON o HBITMAP junto con el color transparente para establecer la imagen del panel. Si ya no quiere mostrar la imagen, pase el valor NULL como el identificador de imagen.
Si hay alguna animación en ejecución establecida por CMFCStatusBar::SetPaneAnimation, la animación se detendrá.
CMFCStatusBar::SetPaneInfo
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Parámetros
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
Comentarios
CMFCStatusBar::SetPaneProgress
Establece el indicador de progreso actual de la barra de progreso del panel especificado.
void SetPaneProgress(
int nIndex,
long nCurr,
BOOL bUpdate=TRUE);
Parámetros
nIndex
[in] Especifica el índice del panel para el que se va a actualizar el indicador de progreso.
nCurr
[in] Especifica el valor actual del indicador de progreso.
bUpdate
[in] Especifica si el panel se debe actualizar inmediatamente.
Comentarios
Llame a este método cuando quiera actualizar el indicador de progreso de la barra de progreso en el panel especificado.
Para usar esta función para el panel especificado, primero debe llamar a CMFCStatusBar::EnablePaneProgressBar.
CMFCStatusBar::SetPaneStyle
void SetPaneStyle(
int nIndex,
UINT nStyle);
Parámetros
[in] nIndex
[in] nStyle
Comentarios
CMFCStatusBar::SetPaneText
virtual BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Parámetros
[in] nIndex
[in] lpszNewText
[in] bUpdate
Valor devuelto
Comentarios
CMFCStatusBar::SetPaneTextColor
Establece el color de texto del panel especificado.
void SetPaneTextColor(
int nIndex,
COLORREF clrText=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parámetros
nIndex
[in] Especifica el índice del panel al que quiere asignarle un nuevo color de texto.
clrText
[in] Especifica el color del texto.
bUpdate
[in] Si es TRUE, actualiza el contenido del panel inmediatamente. De lo contrario, no actualice el contenido del panel hasta que otro método lo invalide.
CMFCStatusBar::SetPaneWidth
Establece el ancho del panel de la barra de estado.
void SetPaneWidth(
int nIndex,
int cx);
Parámetros
nIndex
[in] Índice del panel de la barra de estado para el que se va a establecer un nuevo ancho.
cx
[in] Nuevo ancho del panel de la barra de estado, en píxeles.
CMFCStatusBar::SetTipText
Establece el texto de información sobre herramientas de un panel de barra de estado.
void SetTipText(
int nIndex,
LPCTSTR pszTipText);
Parámetros
nIndex
[in] Índice del panel al que quiere asignar el texto de información sobre herramientas.
pszTipText
[in] Nuevo texto de información sobre herramientas.
Consulte también
Gráfico de jerarquías
Clases
CPane (clase)
CStatusBar (clase)