CMFCHeaderCtrl (clase)
La clase CMFCHeaderCtrl
admite la ordenación de varias columnas en un control de encabezado.
Sintaxis
class CMFCHeaderCtrl : public CHeaderCtrl
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CMFCHeaderCtrl::CMFCHeaderCtrl | Construye un objeto CMFCHeaderCtrl . |
CMFCHeaderCtrl::~CMFCHeaderCtrl |
Destructor. |
Métodos públicos
Nombre | Descripción |
---|---|
CMFCHeaderCtrl::EnableMultipleSort | Habilita o deshabilita el modo de ordenación de varias columnas para el control de encabezado actual. |
CMFCHeaderCtrl::GetColumnState | Indica si una columna no está ordenada o está ordenada en orden ascendente o descendente. |
CMFCHeaderCtrl::GetSortColumn | Recupera el índice de base cero de la primera columna ordenada en el control de encabezado. |
CMFCHeaderCtrl::GetThisClass |
Lo usa el marco para obtener un puntero al objeto CRuntimeClass asociado a este tipo de clase. |
CMFCHeaderCtrl::IsAscending | Indica si alguna columna del control de encabezado se ordena en orden ascendente. |
CMFCHeaderCtrl::IsDialogControl | Indica si la ventana principal del control de encabezado actual es un cuadro de diálogo. |
CMFCHeaderCtrl::IsMultipleSort | Indica si el control de encabezado actual está en modo de ordenación de varias columnas. |
CMFCHeaderCtrl::RemoveSortColumn | Quita la columna especificada de la lista de columnas de ordenación. |
CMFCHeaderCtrl::SetSortColumn | Establece el criterio de ordenación de una columna especificada en un control de encabezado. |
Métodos protegidos
Nombre | Descripción |
---|---|
CMFCHeaderCtrl::OnDrawItem | Lo llama el marco de trabajo para dibujar una columna de control de encabezado. |
CMFCHeaderCtrl::OnDrawSortArrow | Lo llama el marco de trabajo para dibujar la flecha de ordenación. |
CMFCHeaderCtrl::OnFillBackground | Lo llama el marco de trabajo para rellenar el fondo de una columna de control de encabezado. |
Ejemplo
En el ejemplo siguiente se muestra cómo construir un objeto de la clase CMFCHeaderCtrl
y cómo habilitar el modo de ordenación de varias columnas para el control de encabezado actual.
CMFCHeaderCtrl *headerCtrl = new CMFCHeaderCtrl();
headerCtrl->EnableMultipleSort();
Comentarios
La clase CMFCHeaderCtrl
dibuja una flecha de ordenación en una columna de control de encabezado para indicar que la columna está ordenada. Use el modo de ordenación de varias columnas si se puede ordenar un conjunto de columnas en el control de lista principal (CMFCListCtrl Class) al mismo tiempo.
Jerarquía de herencia
Requisitos
Encabezado: afxheaderctrl.h
CMFCHeaderCtrl::CMFCHeaderCtrl
Construye un objeto CMFCHeaderCtrl
.
CMFCHeaderCtrl::CMFCHeaderCtrl()
Comentarios
Este constructor inicializa las siguientes variables miembro en los valores especificados:
Variable miembro | Valor |
---|---|
m_bIsMousePressed |
FALSO |
m_bMultipleSort |
false |
m_bAscending |
VERDADERO |
m_nHighlightedItem |
-1 |
m_bTracked |
FALSO |
m_bIsDlgControl |
FALSE |
m_hFont |
NULL |
CMFCHeaderCtrl::EnableMultipleSort
Habilita o deshabilita el modo de ordenación de varias columnas para el control de encabezado actual.
void EnableMultipleSort(BOOL bEnable=TRUE);
Parámetros
bEnable
[in] TRUE para habilitar el modo de ordenación de varias columnas; FALSE para deshabilitar el modo de ordenación de varias columnas y quitar las columnas de la lista de columnas ordenadas. El valor predeterminado es TRUE.
Comentarios
Use este método para habilitar o deshabilitar el modo de ordenación de varias columnas. Dos o más columnas pueden participar en una ordenación si el control de encabezado está en modo de ordenación de varias columnas.
CMFCHeaderCtrl::GetColumnState
Indica si una columna no está ordenada o está ordenada en orden ascendente o descendente.
int GetColumnState(int iColumn) const;
Parámetros
iColumn
[in] Índice de base cero de la columna.
Valor devuelto
Valor que indica el estado de ordenación de la columna especificada. En la tabla siguiente, se ofrecen los valores posibles:
Valor | Descripción |
---|---|
-1 | Ordenada de forma descendente |
0 | Sin orden. |
1 | Ordenada de forma ascendente. |
Comentarios
CMFCHeaderCtrl::GetSortColumn
Recupera el índice de base cero de la primera columna ordenada en el control de encabezado.
int GetSortColumn() const;
Valor devuelto
Índice de una columna ordenada o -1 si no se encuentra ninguna columna ordenada.
Comentarios
Si el control de encabezado está en modo de ordenación de varias columnas y ha compilado la aplicación en modo de depuración, este método realiza la aserción y le aconseja usar el método CMFCHeaderCtrl::GetColumnState en su lugar. Si el control de encabezado está en modo de ordenación de varias columnas y ha compilado la aplicación en modo comercial, este método devuelve -1.
CMFCHeaderCtrl::IsAscending
Indica si alguna columna del control de encabezado se ordena en orden ascendente.
BOOL IsAscending() const;
Valor devuelto
TRUE si alguna columna del control de encabezado se ordena en orden ascendente; de lo contrario, FALSE.
Comentarios
El valor que devuelve este método se usa para mostrar la flecha de ordenación adecuada en el elemento de control de encabezado. Use el método CMFCHeaderCtrl::SetSortColumn para establecer el criterio de ordenación.
CMFCHeaderCtrl::IsDialogControl
Indica si la ventana principal del control de encabezado actual es un cuadro de diálogo.
BOOL IsDialogControl() const;
Valor devuelto
TRUE si la ventana principal del control de encabezado actual es un cuadro de diálogo; de lo contrario, FALSE.
CMFCHeaderCtrl::IsMultipleSort
Indica si el control de encabezado actual está en modo de ordenación de varias columnas.
BOOL IsMultipleSort() const;
Valor devuelto
TRUE si está habilitado el modo de ordenación de varias columnas; de lo contrario, FALSE.
Comentarios
Use el método CMFCHeaderCtrl::EnableMultipleSort para habilitar o deshabilitar el modo de ordenación de varias columnas. Dos o más columnas pueden participar en una ordenación si el control de encabezado está en modo de ordenación de varias columnas.
CMFCHeaderCtrl::OnDrawItem
Lo llama el marco de trabajo para dibujar una columna de control de encabezado.
virtual void OnDrawItem(
CDC* pDC,
int iItem,
CRect rect,
BOOL bIsPressed,
BOOL bIsHighlighted);
Parámetros
pDC
[in] Puntero a un contexto de dispositivo.
iItem
[in] Índice de base cero del elemento que se va a dibujar.
rect
[in] Rectángulo delimitador del elemento que se va a dibujar.
bIsPressed
[in] TRUE para dibujar el elemento en estado presionado; de lo contrario, FALSE.
bIsHighlighted
[in] TRUE para dibujar el elemento en estado resaltado; de lo contrario, FALSE.
CMFCHeaderCtrl::OnDrawSortArrow
Lo llama el marco de trabajo para dibujar la flecha de ordenación.
virtual void OnDrawSortArrow(
CDC* pDC,
CRect rectArrow);
Parámetros
pDC
[in] Puntero a un contexto de dispositivo.
rectArrow
[in] Rectángulo delimitador de la flecha de ordenación.
CMFCHeaderCtrl::OnFillBackground
Lo llama el marco de trabajo para rellenar el fondo de una columna de control de encabezado.
virtual void OnFillBackground(CDC* pDC);
Parámetros
pDC
[in] Puntero a un contexto de dispositivo.
Comentarios
CMFCHeaderCtrl::RemoveSortColumn
Quita la columna especificada de la lista de columnas de ordenación.
void RemoveSortColumn(int iColumn);
Parámetros
iColumn
[in] Índice de base cero de la columna que se va a quitar.
CMFCHeaderCtrl::SetSortColumn
Establece el criterio de ordenación de una columna especificada en un control de encabezado.
void SetSortColumn(
int iColumn,
BOOL bAscending=TRUE,
BOOL bAdd=FALSE);
Parámetros
iColumn
[in] Índice de base cero de una columna de control de encabezado. Si este parámetro es menor que cero, este método quita todas las columnas de la lista de columnas de ordenación.
bAscending
[in] Especifica el criterio de ordenación de la columna que especifica el parámetro iColumn. TRUE para establecer el orden ascendente; FALSE para establecer el orden descendente. El valor predeterminado es TRUE.
bAdd
[in] TRUE para establecer el criterio de ordenación de la columna que especifica el parámetro iColumn.
Si el control de encabezado actual está en modo de ordenación de varias columnas, este método agrega la columna especificada a la lista de columnas de ordenación. Use CMFCHeaderCtrl::EnableMultipleSort para establecer el modo de ordenación de varias columnas.
Si no se establece el modo de ordenación de varias columnas y este método se compila en modo de depuración, este método realiza la aserción. Si no se establece el modo de ordenación de varias columnas y este método se compila en modo comercial, este método quita primero todas las columnas de la lista de columnas de ordenación y, luego, agrega la columna especificada a la lista.
FALSE para quitar primero todas las columnas de la lista de columnas de ordenación y, luego, agregar la columna especificada a la lista. El valor predeterminado es FALSE.
Comentarios
Use este método para establecer el criterio de ordenación de una columna. Si es necesario, este método agrega la columna a la lista de columnas de ordenación. El control de encabezado usa el criterio de ordenación para dibujar una flecha de ordenación que apunta hacia arriba o hacia abajo.