Classe CMFCListCtrl

A classe CMFCListCtrl estende a funcionalidade da Classe CListCtrl dando suporte à funcionalidade de controle de cabeçalho avançado da Classe CMFCHeaderCtrl.

Sintaxe

class CMFCListCtrl : public CListCtrl

Membros

Métodos públicos

Nome Descrição
CMFCListCtrl::EnableMarkSortedColumn Permite a capacidade de marcar uma coluna classificada com uma cor da tela de fundo diferente.
CMFCListCtrl::EnableMultipleSort Habilita o modo de classificação múltipla.
CMFCListCtrl::GetHeaderCtrl Retorna uma referência ao controle de cabeçalho sublinhado.
CMFCListCtrl::IsMultipleSort Verifica se o controle de lista está no modo de classificação múltipla.
CMFCListCtrl::OnCompareItems Chamado pela estrutura quando ele deve comparar dois itens de controle de lista.
CMFCListCtrl::OnGetCellBkColor Chamado pela estrutura quando ele deve determinar a cor da tela de fundo de uma célula individual.
CMFCListCtrl::OnGetCellFont Chamado pela estrutura quando ela deve obter a fonte para a célula que está sendo desenhada.
CMFCListCtrl::OnGetCellTextColor Chamado pela estrutura quando deve determinar a cor do texto de uma célula individual.
CMFCListCtrl::RemoveSortColumn Remove uma coluna de classificação da lista de colunas classificadas.
CMFCListCtrl::SetSortColumn Define a coluna classificada atual e a ordem de classificação.
CMFCListCtrl::Sort Classifica o controle de lista.

Comentários

CMFCListCtrl oferece dois aprimoramentos para a Classe CListCtrl. Primeiro, indica que a classificação de colunas é uma opção disponível desenhando automaticamente uma seta de classificação no cabeçalho. Em segundo lugar, dá suporte à classificação de dados em várias colunas ao mesmo tempo.

Exemplo

O exemplo a seguir demonstra como usar vários métodos na classe CMFCListCtrl. O exemplo mostra como criar um controle de lista, inserir colunas, inserir itens, definir o texto de um item e definir a fonte do controle de lista. Esse snippet de código faz parte do exemplo de Demonstração do 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);

Hierarquia de herança

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Requisitos

Cabeçalho: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Marca as colunas classificadas com uma cor da tela de fundo diferente.

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

Parâmetros

bMark
[in] Um parâmetro booliano que determina se uma cor da tela de fundo diferente deve ser habilitada.

bRedraw
[in] Um parâmetro booliano que determina se o controle será redesenhado imediatamente.

Comentários

EnableMarkSortedColumn usa o método CDrawingManager::PixelAlpha para calcular qual cor usar para colunas classificadas. A cor escolhida é baseada na cor da tela de fundo normal.

CMFCListCtrl::EnableMultipleSort

Habilita a classificação das linhas de dados no controle de lista por várias colunas.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parâmetros

bEnable
[in] Um booliano que especifica se o modo de classificação com múltiplas colunas deve ser habilitado.

Comentários

Quando você habilita a classificação com base em várias colunas, as colunas têm uma hierarquia. As linhas de dados serão classificadas primeiro pela coluna primária. Todos os valores equivalentes são classificados pela coluna subsequente com base na prioridade.

CMFCListCtrl::GetHeaderCtrl

Retorna uma referência ao controle de cabeçalho.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Valor de retorno

Uma referência ao objeto subjacente CMFCHeaderCtrl.

Comentários

O controle de cabeçalho para um controle de lista é a janela que contém os títulos das colunas. Normalmente, é posicionado diretamente acima das colunas.

CMFCListCtrl::IsMultipleSort

Verifica se o controle de lista atualmente dá suporte à classificação em várias colunas.

BOOL IsMultipleSort() const;

Valor de retorno

TRUE se o controle de lista for compatível com várias classificações; caso contrário, FALSE.

Comentários

Quando uma Classe CMFCListCtrl dá suporte a várias classificações, o usuário pode classificar os dados no controle de lista por várias colunas. Para habilitar a classificação múltipla, chame CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

A estrutura chama esse método quando compara dois itens.

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

Parâmetros

lParam1
[in] O primeiro item a ser comparado.

lParam2
[in] O segundo item a ser comparado.

iColumn
[in] O índice da coluna que este método está classificando.

Valor de retorno

Um inteiro que indica a posição relativa dos dois itens. Um valor negativo indica que o primeiro item deve preceder o segundo, um valor positivo indica que o primeiro item deve seguir o segundo e zero significa que os dois itens são equivalentes.

Comentários

A implementação padrão sempre retorna 0. Substitua essa função para fornecer seu algoritmo de classificação.

CMFCListCtrl::OnGetCellBkColor

A estrutura chama esse método quando deve determinar a cor da tela de fundo de uma célula individual.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parâmetros

nRow
[in] A linha da célula em questão.

nColumn
[in] A coluna da célula em questão.

Valor de retorno

Um valor COLOREF que especifica a cor da tela de fundo da célula.

Comentários

A implementação padrão de OnGetCellBkColor não usa os parâmetros de entrada fornecidos e, em vez disso, simplesmente chama GetBkColor. Portanto, por padrão, todo o controle de lista terá a mesma cor da tela de fundo. Você pode substituir OnGetCellBkColor em uma classe derivada para marcar células individuais com uma cor da tela de fundo separada.

CMFCListCtrl::OnGetCellFont

A estrutura chama esse método quando obtém a fonte de uma célula individual.

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

Parâmetros

nRow
[in] A linha da célula em questão.

nColumn
[in] A coluna da célula em questão.

dwData
[in] Dados definidos pelo usuário. A implementação padrão não usa esse parâmetro.

Valor de retorno

Um identificador para a fonte usada para a célula atual.

Comentários

Por padrão, esse método retorna NULL. Todas as células em um controle de lista têm a mesma fonte. Substitua esse método para fornecer fontes diferentes para células diferentes.

CMFCListCtrl::OnGetCellTextColor

A estrutura chama esse método quando deve determinar a cor do texto de uma célula individual.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parâmetros

nRow
[in] A linha da célula em questão.

nColumn
[in] A coluna da célula em questão.

Valor de retorno

Um valor COLOREF que especifica a cor do texto da célula.

Comentários

Por padrão, esse método chama GetTextColor independentemente dos parâmetros de entrada. Todo o controle de lista terá a mesma cor de texto. Você pode substituir OnGetCellTextColor em uma classe derivada para marcar células individuais com uma cor de texto separada.

CMFCListCtrl::RemoveSortColumn

Remove uma coluna de classificação da lista de colunas classificadas.

void RemoveSortColumn(int iColumn);

Parâmetros

iColumn
[in] A coluna a ser removida.

Comentários

Esse método remove uma coluna de classificação do controle de cabeçalho. Ele chama CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Define a coluna classificada atual e a ordem de classificação.

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

Parâmetros

iColumn
[in] A coluna a ser classificada.

bAscending
[in] Um booliano que especifica a ordem de classificação.

bAdd
[in] Um booliano que especifica se o método adiciona a coluna indicada por iColumn para a lista de colunas de classificação.

Comentários

Esse método passa os parâmetros de entrada para o controle de cabeçalho usando o método CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Classifica o controle de lista.

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

Parâmetros

iColumn
[in] A coluna a ser classificada.

bAscending
[in] Um booliano que especifica a ordem de classificação.

bAdd
[in] Um booliano que especifica se esse método adiciona a coluna indicada por iColumn para a lista de colunas de classificação.

Confira também

Gráfico da hierarquia
Classes
Classe CListCtrl