Compartir por


Clase CMFCListCtrl

La clase CMFCListCtrl prolonga la funcionalidad de la clase CListCtrl al proporcionar la funcionalidad del control avanzado de encabezado de la clase CMFCHeaderCtrl.

Sintaxis

class CMFCListCtrl : public CListCtrl

Miembros

Métodos públicos

Nombre Descripción
CMFCListCtrl::EnableMarkSortedColumn Permite marcar una columna ordenada con un color de fondo diferente.
CMFCListCtrl::EnableMultipleSort Habilita el modo de ordenación múltiple.
CMFCListCtrl::GetHeaderCtrl Devuelve una referencia al control de encabezado subrayado.
CMFCListCtrl::IsMultipleSort Comprueba si el control de lista está en modo de ordenación múltiple.
CMFCListCtrl::OnCompareItems Lo llama el marco cuando debe comparar dos elementos de control de lista.
CMFCListCtrl::OnGetCellBkColor Lo llama el marco cuando debe determinar el color de fondo de una celda individual.
CMFCListCtrl::OnGetCellFont Lo llama el marco cuando debe obtener la fuente de la celda que se va a dibujar.
CMFCListCtrl::OnGetCellTextColor Lo llama el marco cuando debe determinar el color de texto de una celda individual.
CMFCListCtrl::RemoveSortColumn Quita una columna de ordenación de la lista de columnas ordenadas.
CMFCListCtrl::SetSortColumn Establece la columna ordenada actual y el criterio de ordenación.
CMFCListCtrl::Sort Ordena el control de lista.

Comentarios

CMFCListCtrl ofrece dos mejoras en la clase CListCtrl. En primer lugar, indica que la ordenación de columnas es una opción disponible al dibujar automáticamente una flecha de ordenación en el encabezado. En segundo lugar, admite la ordenación de datos en varias columnas al mismo tiempo.

Ejemplo

En el siguiente ejemplo se muestra cómo usar los distintos métodos en la clase CMFCListCtrl . En el ejemplo, se muestra cómo crear un control de lista, insertar columnas, insertar elementos, establecer el texto de un elemento y establecer la fuente del control de lista. Este fragmento de código forma parte del ejemplo de demostración de Visual Studio.

CMFCListCtrl m_wndWatch;
// DWORD dwStyle
// CRect rectDummy
m_wndWatch.Create(dwStyle, rectDummy, this, ID_LIST_1);
m_wndWatch.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_wndWatch.InsertColumn(0, _T("Variable"), LVCFMT_LEFT, 100);
m_wndWatch.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 100);

m_wndWatch.InsertItem(0, _T("m_nCount"));
m_wndWatch.SetItemText(0, 1, _T("100"));

m_wndWatch.SetFont(&m_Font);

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Requisitos

Encabezado: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Marca las columnas ordenadas con un color de fondo diferente.

void EnableMarkSortedColumn(
    BOOL bMark = TRUE,
    BOOL bRedraw = TRUE);

Parámetros

bMark
[entrada] Parámetro booleano que determina si se va a habilitar un color de fondo diferente.

bRedraw
[entrada] Parámetro booleano que determina si se va a volver a dibujar el control inmediatamente.

Comentarios

EnableMarkSortedColumn usa el método CDrawingManager::PixelAlpha para calcular el color que se va a usar para las columnas ordenadas. El color seleccionado se basa en el color de fondo normal.

CMFCListCtrl::EnableMultipleSort

Habilita la ordenación de las filas de datos en el control de lista por varias columnas.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parámetros

bEnable
[entrada] Valor booleano que especifica si se va a habilitar el modo de ordenación de varias columnas.

Comentarios

Al habilitar la ordenación en función de varias columnas, las columnas tienen una jerarquía. Las filas de datos se ordenarán primero por la columna principal. A continuación, los valores equivalentes se ordenan por cada columna subsiguiente en función de la prioridad.

CMFCListCtrl::GetHeaderCtrl

Devuelve una referencia al control de encabezado.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Valor devuelto

Referencia al objeto subyacente CMFCHeaderCtrl.

Comentarios

El control de encabezado de un control de lista es la ventana que contiene los títulos de las columnas. Normalmente, se coloca directamente encima de las columnas.

CMFCListCtrl::IsMultipleSort

Comprueba si el control de lista admite actualmente la ordenación en varias columnas.

BOOL IsMultipleSort() const;

Valor devuelto

TRUE si el control de lista admite la ordenación múltiple; de lo contrario, es FALSE.

Comentarios

Cuando una clase CMFCListCtrl admite la ordenación múltiple, el usuario puede ordenar los datos del control de lista por varias columnas. Para habilitar la ordenación múltiple, llame a CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

El marco llama a este método cuando compara dos elementos.

virtual int OnCompareItems(
    LPARAM lParam1,
    LPARAM lParam2,
    int iColumn);

Parámetros

lParam1
[entrada] Primer elemento que se va a comparar.

lParam2
[entrada] Segundo elemento que se va a comparar.

iColumn
[entrada] Índice de la columna que este método va a ordenar.

Valor devuelto

Entero que indica la posición relativa de los dos elementos. Un valor negativo indica que el primer elemento debe preceder al segundo, un valor positivo indica que el primer elemento debe seguir el segundo y cero significa que los dos elementos son equivalentes.

Comentarios

La implementación predeterminada siempre devuelve 0. Invalide esta función para proporcionar su propio algoritmo de ordenación.

CMFCListCtrl::OnGetCellBkColor

El marco llama a este método cuando debe determinar el color de fondo de una celda individual.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parámetros

nRow
[entrada] Fila de la celda en cuestión.

nColumn
[entrada] Columna de la celda en cuestión.

Valor devuelto

Valor COLOREF que especifica el color de fondo de la celda.

Comentarios

La implementación predeterminada de OnGetCellBkColor no usa los parámetros de entrada proporcionados y, en su lugar, simplemente llama a GetBkColor. Por lo tanto, de forma predeterminada, todo el control de lista tendrá el mismo color de fondo. Puede invalidar OnGetCellBkColor en una clase derivada para marcar celdas individuales con un color de fondo independiente.

CMFCListCtrl::OnGetCellFont

El marco llama a este método cuando obtiene la fuente de una celda individual.

virtual HFONT OnGetCellFont(
    int nRow,
    int nColumn,
    DWORD dwData = 0);

Parámetros

nRow
[entrada] Fila de la celda en cuestión.

nColumn
[entrada] Columna de la celda en cuestión.

dwData
[entrada] Datos definidos por el usuario. La implementación predeterminada no usa este parámetro.

Valor devuelto

Manipulador de la fuente que se usa para la celda actual.

Comentarios

De manera predeterminada, este método devuelve NULL. Todas las celdas de un control de lista tienen la misma fuente. Invalide este método para proporcionar diferentes fuentes para celdas diferentes.

CMFCListCtrl::OnGetCellTextColor

El marco llama a este método cuando debe determinar el color de texto de una celda individual.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parámetros

nRow
[entrada] Fila de la celda en cuestión.

nColumn
[entrada] Columna de la celda en cuestión.

Valor devuelto

Valor de COLOREF que especifica el color del texto de la celda.

Comentarios

De forma predeterminada, este método llama a GetTextColor independientemente de los parámetros de entrada. Todo el control de lista tendrá el mismo color de texto. Puede invalidar OnGetCellTextColor en una clase derivada para marcar celdas individuales con un color de texto independiente.

CMFCListCtrl::RemoveSortColumn

Quita una columna de ordenación de la lista de columnas ordenadas.

void RemoveSortColumn(int iColumn);

Parámetros

iColumn
[entrada] Columna que se va a quitar.

Comentarios

Este método quita una columna de ordenación del control de encabezado. Llama a CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Establece la columna ordenada actual y el criterio de ordenación.

void SetSortColumn(
    int iColumn,
    BOOL bAscending = TRUE,
    BOOL bAdd = FALSE);

Parámetros

iColumn
[entrada] Columna que se va a ordenar.

bAscending
[entrada] Valor booleano que especifica el criterio de ordenación.

bAdd
[entrada] Valor booleano que especifica si el método agrega la columna indicada por iColumn a la lista de columnas de ordenación.

Comentarios

Este método pasa los parámetros de entrada al control de encabezado mediante el método CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Ordena el control de lista.

virtual void Sort(
    int iColumn,
    BOOL bAscending = TRUE,
    BOOL bAdd = FALSE);

Parámetros

iColumn
[entrada] Columna que se va a ordenar.

bAscending
[entrada] Valor booleano que especifica el criterio de ordenación.

bAdd
[entrada] Valor booleano que especifica si este método agrega la columna indicada por iColumn a la lista de columnas de ordenación.

Consulte también

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