Partilhar via


CMFCListCtrl Classe

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

A CMFCListCtrl classe estende a funcionalidade da CListCtrl classe Classe ao suportar a funcionalidade avançada de controlo de cabeçalhos da CMFCHeaderCtrl Classe.

Sintaxe

class CMFCListCtrl : public CListCtrl

Membros

Métodos Públicos

Nome Description
CMFCListCtrl::EnableMarkSortedColumn Permite marcar uma coluna ordenada com uma cor de fundo diferente.
CMFCListCtrl::EnableMultipleSort Ativa o modo de ordenação múltipla.
CMFCListCtrl::GetHeaderCtrl Devolve uma referência ao controlo do cabeçalho sublinhado.
CMFCListCtrl::IsMultipleSort Verifica se o controlo de listas está em modo de ordenação múltipla.
CMFCListCtrl::OnCompareItems Chamado pelo framework quando tem de comparar dois itens de controlo de lista.
CMFCListCtrl::OnGetCellBkColor Chamado pela estrutura quando tem de determinar a cor de fundo de uma célula individual.
CMFCListCtrl::OnGetCellFont Chamado pelo framework quando tem de obter a fonte da célula a desenhar.
CMFCListCtrl::OnGetCellTextColor Chamado pelo framework quando tem de determinar a cor do texto de uma célula individual.
CMFCListCtrl::RemoveSortColumn Remove uma coluna de ordenação da lista de colunas ordenadas.
CMFCListCtrl::SetSortColumn Define a coluna ordenada atual e a ordem de ordenação.
CMFCListCtrl::Sort Organiza o controlo da lista.

Observações

CMFCListCtrl oferece duas melhorias à CListCtrl classe de Turma . Primeiro, indica que a ordenação de colunas é uma opção disponível ao desenhar automaticamente uma seta de ordenação no cabeçalho. Em segundo lugar, suporta ordenação de dados em várias colunas ao mesmo tempo.

Example

O exemplo seguinte demonstra como usar vários métodos na CMFCListCtrl aula. O exemplo mostra como criar um controlo de lista, inserir colunas, inserir itens, definir o texto de um item e definir a fonte do controlo da lista. Este excerto 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

Requerimentos

Cabeçalho:afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Marca as colunas ordenadas com uma cor de fundo diferente.

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

Parâmetros

bMark
[dentro] Um parâmetro booleano que determina se deve ativar uma cor de fundo diferente.

bRedraw
[dentro] Um parâmetro booleano que determina se deve voltar a desenhar o controlo imediatamente.

Observações

EnableMarkSortedColumn Utiliza o método CDrawingManager::PixelAlpha para calcular que cor usar para as colunas ordenadas. A cor escolhida baseia-se na cor de fundo normal.

CMFCListCtrl::EnableMultipleSort

Permite ordenar as linhas de dados no controlo de listas por múltiplas colunas.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parâmetros

bEnable
[dentro] Um Booleano que especifica se deve ativar o modo de ordenação com múltiplas colunas.

Observações

Quando ativas a ordenação com base em múltiplas colunas, as colunas têm uma hierarquia. As linhas de dados serão primeiro ordenadas pela coluna primária. Quaisquer valores equivalentes são então ordenados por cada coluna subsequente com base na prioridade.

CMFCListCtrl::GetHeaderCtrl

Devolve uma referência ao controlo do cabeçalho.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Valor de retorno

Uma referência ao objeto subjacente CMFCHeaderCtrl .

Observações

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

CMFCListCtrl::IsMultipleSort

Verifica se o controlo da lista atualmente suporta ordenação em várias colunas.

BOOL IsMultipleSort() const;

Valor de retorno

TRUE se o controlo de lista suportar múltiplas ordenações; FALSE caso contrário.

Observações

Quando uma CMFCListCtrl Classe suporta a ordenação múltipla, o utilizador pode ordenar os dados no controlo da lista por várias colunas. Para permitir a ordenação múltipla, chame CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

A estrutura chama a este método quando compara dois itens.

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

Parâmetros

lParam1
[dentro] O primeiro item a comparar.

lParam2
[dentro] O segundo item a comparar.

iColumn
[dentro] O índice da coluna que este método está a ordenar.

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 suceder ao segundo, e zero significa que os dois itens são equivalentes.

Observações

A implementação padrão devolve sempre 0. Anule esta função para fornecer o seu próprio algoritmo de ordenação.

CMFCListCtrl::OnGetCellBkColor

A estrutura chama a este método quando tem de determinar a cor de fundo de uma célula individual.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parâmetros

nRow
[dentro] A fila da cela em questão.

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

Valor de retorno

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

Observações

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

CMFCListCtrl::OnGetCellFont

O framework chama este método quando obtém a fonte para uma célula individual.

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

Parâmetros

nRow
[dentro] A fila da cela em questão.

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

dwData
[dentro] Dados definidos pelo utilizador. A implementação padrão não usa este parâmetro.

Valor de retorno

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

Observações

Por defeito, este método devolve NULL. Todas as células num controlo de lista têm a mesma fonte. Substitua este método para fornecer fontes diferentes para diferentes células.

CMFCListCtrl::OnGetCellTextColor

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

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parâmetros

nRow
[dentro] A fila da cela em questão.

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

Valor de retorno

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

Observações

Por defeito, este método chama GetTextColor independentemente dos parâmetros de entrada. Todo o controlo da lista terá a mesma cor de texto. Podes sobrescrever OnGetCellTextColor uma classe derivada para marcar células individuais com uma cor de texto separada.

CMFCListCtrl::RemoveSortColumn

Remove uma coluna de ordenação da lista de colunas ordenadas.

void RemoveSortColumn(int iColumn);

Parâmetros

iColumn
[dentro] A coluna a remover.

Observações

Este método remove uma coluna de ordenação do controlo do cabeçalho. Chama CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Define a coluna ordenada atual e a ordem de ordenação.

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

Parâmetros

iColumn
[dentro] A coluna a organizar.

bAscending
[dentro] Um Booleano que especifica a ordem de ordenação.

bAdd
[dentro] Um booleano que especifica se o método adiciona a coluna indicada por iColumn à lista de colunas de ordenação.

Observações

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

CMFCListCtrl::Sort

Organiza o controlo da lista.

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

Parâmetros

iColumn
[dentro] A coluna a organizar.

bAscending
[dentro] Um Booleano que especifica a ordem de ordenação.

bAdd
[dentro] Um Booleano que especifica se este método adiciona a coluna indicada por iColumn à lista de colunas de ordenação.

Consulte também

Gráfico de Hierarquia
Classes
CListCtrl Classe