Clase CStatusBar
Una barra de control con una fila de paneles de salida de texto o "indicadores".
Sintaxis
class CStatusBar : public CControlBar
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CStatusBar::CStatusBar | Construye un objeto CStatusBar . |
Métodos públicos
Nombre | Descripción |
---|---|
CStatusBar::CommandToIndex | Obtiene el índice de un id. de indicador determinado. |
CStatusBar::Create | Crea la barra de estado, la adjunta al objeto CStatusBar y establece la fuente inicial y la altura de la barra. |
CStatusBar::CreateEx | Crea un objeto CStatusBar con estilos adicionales para el objeto insertado CStatusBarCtrl . |
CStatusBar::DrawItem | Se llama cuando cambia la apariencia de una barra de estado dibujada por el usuario. |
CStatusBar::GetItemID | Obtiene el id. de indicador de un índice determinado. |
CStatusBar::GetItemRect | Obtiene el rectángulo de presentación de un índice determinado. |
CStatusBar::GetPaneInfo | Obtiene el id. de indicador, el estilo y el ancho de un índice determinado. |
CStatusBar::GetPaneStyle | Obtiene el estilo de indicador de un índice determinado. |
CStatusBar::GetPaneText | Obtiene el texto de indicador de un índice determinado. |
CStatusBar::GetStatusBarCtrl | Permite el acceso directo al control común subyacente. |
CStatusBar::SetIndicators | Establece los id. de indicadores. |
CStatusBar::SetPaneInfo | Establece el id. de indicador, el estilo y el ancho de un índice determinado. |
CStatusBar::SetPaneStyle | Establece el estilo de indicador de un índice determinado. |
CStatusBar::SetPaneText | Obtiene el texto del indicador de un índice determinado. |
Comentarios
Los paneles de salida se usan normalmente como líneas de mensaje y como indicadores de estado. Entre los ejemplos se incluyen las líneas de mensaje de ayuda del menú que explican brevemente el comando del menú seleccionado y los indicadores que muestran el estado de SCROLL LOCK, NUM LOCK y otras teclas.
CStatusBar::GetStatusBarCtrl es una función miembro nueva en MFC 4.0 que le permite aprovechar la compatibilidad del control común de Windows con la personalización y funcionalidad adicional de la barra de estado. Las funciones miembro de CStatusBar
proporcionan la mayor parte de la funcionalidad de los controles comunes de Windows; sin embargo, al llamar a GetStatusBarCtrl
, se puede proporcionar a las barras de estado aún más de las características de una barra de estado de Windows 95/98. Al llamar a GetStatusBarCtrl
, se devolverá una referencia a un objeto CStatusBarCtrl
. Consulte CStatusBarCtrl para obtener más información sobre el diseño de barras de herramientas mediante controles comunes de Windows. Para obtener más información general sobre los controles comunes, vea Controles comunes en Windows SDK.
El marco almacena información de indicador en una matriz con el indicador situado más a la izquierda en la posición 0. Al crear una barra de estado, se usa una matriz de id. de cadena que el marco asocia con los indicadores correspondientes. A continuación, puede usar un id. de cadena o un índice para acceder a un indicador.
De forma predeterminada, el primer indicador es "elástico": ocupa la longitud de la barra de estado no utilizada por los demás paneles de indicadores, de modo que los demás paneles estén alineados a la derecha.
Para crear una barra de estado, siga estos pasos:
Construya el objeto
CStatusBar
.Llame a la función Create (o CreateEx) para crear la ventana de la barra de estado y adjuntarla al objeto
CStatusBar
.Llame a SetIndicators para asociar un id. de cadena a cada indicador.
Hay tres maneras de actualizar el texto en un panel de barra de estado:
Llame a CWnd::SetWindowText para actualizar el texto solo en el panel 0.
Llame a CCmdUI::SetText en el controlador ON_UPDATE_COMMAND_UI de la barra de estado.
Llame a SetPaneText para actualizar el texto de cualquier panel.
Llame a SetPaneStyle para actualizar el estilo de un panel de barra de estado.
Para obtener más información sobre el uso de CStatusBar
, consulte el artículo Implementación de la barra de estado en MFC y la nota técnica 31: Barras de control.
Jerarquía de herencia
CStatusBar
Requisitos
Encabezado: afxext.h
CStatusBar::CommandToIndex
Obtiene el índice de indicador de un id. determinado.
int CommandToIndex(UINT nIDFind) const;
Parámetros
nIDFind
Id. de cadena del indicador cuyo índice se recuperará.
Valor devuelto
El índice del indicador si es correcto; -1 si no es correcto.
Comentarios
El índice del primer indicador es 0.
CStatusBar::Create
Crea una barra de estado (una ventana secundaria) y la asocia con el objeto CStatusBar
.
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parámetros
pParentWnd
El puntero al objeto CWnd cuya ventana de Windows es el elemento primario de la barra de estado.
dwStyle
El estilo de la barra de estado. Además de los estilos estándar de Windows, se admiten estos estilos.
La barra de control CBRS_TOP está en la parte superior de la ventana de marco.
La barra de control CBRS_BOTTOM está en la parte inferior de la ventana de marco.
La barra de control CBRS_NOALIGN no se cambia de posición cuando se cambia el tamaño del elemento principal.
Nid
El id. de la ventana secundaria de la barra de herramientas.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
También establece la fuente inicial y la altura de la barra de estado en un valor predeterminado.
CStatusBar::CreateEx
Llame a esta función para crear una barra de estado (una ventana secundaria) y asociarla al objeto CStatusBar
.
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parámetros
pParentWnd
El puntero al objeto CWnd cuya ventana de Windows es el elemento primario de la barra de estado.
dwCtrlStyle
Estilos adicionales para la creación del objeto CStatusBarCtrl insertado. El valor predeterminado especifica una barra de estado sin compatibilidad con el control de dimensionamiento o la información sobre herramientas. Los estilos de barra de estado admitidos son:
SBARS_SIZEGRIP El control de barra de estado incluye un control de dimensionamiento en el extremo derecho de la barra de estado. Un control de dimensionamiento es similar a un borde de dimensionamiento. Es un área rectangular en la que el usuario puede hacer clic y arrastrar para cambiar el tamaño de la ventana primaria.
SBT_TOOLTIPS La barra de estado admite información sobre herramientas.
Para más detalles sobre estos estilos, consulte Configuración de CStatusBarCtrl.
dwStyle
El estilo de la barra de estado. El valor predeterminado especifica que se crea una barra de estado visible en la parte inferior de la ventana de marco. Aplique cualquier combinación de los estilos de control de barra de estado enumerados en Estilos de ventana y CDialogBar::Create. Sin embargo, este parámetro siempre debe incluir los estilos WS_CHILD y WS_VISIBLE.
Nid
El id. de la ventana secundaria de la barra de estado.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Esta función también establece la fuente inicial y la altura de la barra de estado en un valor predeterminado.
Use CreateEx
, en lugar de Crear, cuando ciertos estilos deban estar presentes durante la creación del control de barra de estado incrustado. Por ejemplo, establezca dwCtrlStyle en SBT_TOOLTIPS para mostrar informaciones sobre herramientas en un objeto de barra de estado.
CStatusBar::CStatusBar
Construye un objeto CStatusBar
, crea una fuente de barra de estado predeterminada si es necesario y establece las características de fuente en valores predeterminados.
CStatusBar();
CStatusBar::DrawItem
El marco llama a esta función miembro cuando cambia un aspecto visual de una barra de estado dibujada por el propietario.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parámetros
lpDrawItemStruct
Un puntero a una estructura DRAWITEMSTRUCT que contiene información sobre el tipo de dibujo necesario.
Comentarios
El miembro itemAction
de la estructura DRAWITEMSTRUCT
define la acción de dibujo que se realizará. Invalida esta función miembro para implementar el dibujo de un objeto CStatusBar
dibujado por el propietario. La aplicación debe restaurar todos los objetos de interfaz de dispositivo gráfico (GDI) seleccionados para el contexto de presentación proporcionado en lpDrawItemStruct antes de que finalice esta función miembro.
CStatusBar::GetItemID
Devuelve el id. del indicador especificado por nIndex.
UINT GetItemID(int nIndex) const;
Parámetros
nIndex
Índice del indicador cuyo id. se recuperará.
Valor devuelto
Devuelve el id. del indicador especificado por nIndex.
CStatusBar::GetItemRect
Copia las coordenadas del indicador especificado por nIndex en la estructura a la que apunta lpRect.
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Parámetros
nIndex
Índice del indicador cuyas coordenadas de rectángulo se recuperarán.
lpRect
Apunta a una estructura RECT o a un objeto CRect que recibirá las coordenadas del indicador especificado por nIndex.
Comentarios
Las coordenadas están en píxeles en relación con la esquina superior izquierda de la barra de estado.
CStatusBar::GetPaneInfo
Establece nID, nStyle y cxWidth en el id., estilo y ancho del panel de indicador en la ubicación especificada por nIndex.
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Parámetros
nIndex
Índice del panel cuya información se recuperará.
Nid
Referencia a un UINT que se establece en el id. del panel.
nStyle
Referencia a un UINT que se establece en el estilo del panel.
cxWidth
Referencia a un entero que se establece en el ancho del panel.
CStatusBar::GetPaneStyle
Llame a esta función miembro para recuperar el estilo del panel de una barra de estado.
UINT GetPaneStyle(int nIndex) const;
Parámetros
nIndex
Índice del panel cuyo estilo se recuperará.
Valor devuelto
El estilo del panel de la barra de estado especificado por nIndex.
Comentarios
El estilo de un panel determina cómo aparece el panel.
Para obtener una lista de los estilos disponibles para las barras de estado, consulte Crear.
CStatusBar::GetPaneText
Llame a esta función miembro para recuperar el texto que aparece en un panel de barra de estado.
CString GetPaneText(int nIndex) const; void GetPaneText(int nIndex, CString& rString) const;
Parámetros
nIndex
Índice del panel cuyo texto se recuperará.
rString
Referencia a un objeto CString que contiene el texto que se recuperará.
Valor devuelto
Un objeto CString
que contiene el texto del panel.
Comentarios
La segunda forma de esta función miembro rellena un objeto CString
con el texto de cadena.
CStatusBar::GetStatusBarCtrl
Esta función miembro permite el acceso directo al control común subyacente.
CStatusBarCtrl& GetStatusBarCtrl() const;
Valor devuelto
Contiene una referencia a un objeto CStatusBarCtrl.
Comentarios
Use GetStatusBarCtrl
para aprovechar las ventajas de la funcionalidad del control común de la barra de estado de Windows y para aprovechar la compatibilidad que CStatusBarCtrl proporciona para la personalización de la barra de estado. Por ejemplo, mediante el control común, puede especificar un estilo que incluya un control de dimensionamiento en la barra de estado o puede especificar un estilo para que la barra de estado aparezca en la parte superior del área cliente de la ventana primaria.
Para obtener más información general sobre los controles comunes, consulte Controles comunes en Windows SDK.
CStatusBar::SetIndicators
Establece el id. de cada indicador en el valor especificado por el elemento correspondiente de la matriz lpIDArray, carga el recurso de cadena especificado por cada id. y establece el texto del indicador en la cadena.
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Parámetros
lpIDArray
Puntero a una matriz de id.
nIDCount
Número de elementos de la matriz a la que apunta lpIDArray.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
CStatusBar::SetPaneInfo
Establece en el panel de indicador especificado un nuevo id., estilo y ancho.
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Parámetros
nIndex
Índice del panel de indicador cuyo estilo se establecerá.
Nid
Nuevo id. para el panel de indicadores.
nStyle
Nuevo estilo para el panel de indicador.
cxWidth
Nuevo ancho para el panel de indicador.
Comentarios
Se admiten los estilos de indicador siguientes:
SBPS_NOBORDERS Sin borde 3D alrededor del panel.
SBPS_POPOUT Borde inverso para que el texto "resalte".
SBPS_DISABLED No dibujar texto.
SBPS_STRETCH Panel que se estira para rellenar el espacio sin usar. Solo un panel por barra de estado puede tener este estilo.
SBPS_NORMAL Sin estiramiento, bordes o resaltado.
CStatusBar::SetPaneStyle
Llame a esta función miembro para recuperar el estilo del panel de una barra de estado.
void SetPaneStyle(
int nIndex,
UINT nStyle);
Parámetros
nIndex
Índice del panel cuyo estilo se establecerá.
nStyle
El índice del panel cuyo estilo se establecerá.
Comentarios
El estilo de un panel determina cómo aparece el panel.
Para obtener una lista de los estilos disponibles para las barras de estado, consulte SetPaneInfo.
CStatusBar::SetPaneText
Llame a esta función miembro para establecer el texto del panel en la cadena a la que apunta lpszNewText.
BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Parámetros
nIndex
Índice del panel cuyo texto se establecerá.
lpszNewText
Un puntero al nuevo texto del panel.
bUpdate
Si es TRUE, el panel se invalida después de establecer el texto.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Después de llamar a SetPaneText
, debe agregar un controlador de actualización de la interfaz de usuario para mostrar el nuevo texto en la barra de estado.
Ejemplo
//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);
//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)
void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
}
Vea también
MFC Sample CTRLBARS
Ejemplo de MFC DLGCBR32
CControlBar Class
Gráfico de jerarquías
CStatusBarCtrl (clase)
CControlBar Class