Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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.