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
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.