Compartir a través de


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.

Ejemplo de CMFCStatusBar.

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

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCStatusBar

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)