Compartir por


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

CObject

CCmdTarget

CWnd

CHeaderCtrl

CMFCHeaderCtrl

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.

Consulte también

Gráfico de jerarquías
Clases
CMFCListCtrl (clase)