Classe CMFCListCtrl

La CMFCListCtrl classe estende la funzionalità della CListCtrl classe Class supportando la funzionalità avanzata del controllo intestazione della CMFCHeaderCtrl classe .

Sintassi

class CMFCListCtrl : public CListCtrl

Membri

Metodi pubblici

Nome Descrizione
CMFCListCtrl::EnableMarkSortedColumn Consente di contrassegnare una colonna ordinata con un colore di sfondo diverso.
CMFCListCtrl::EnableMultipleSort Abilita più modalità di ordinamento.
CMFCListCtrl::GetHeaderCtrl Restituisce un riferimento al controllo intestazione sottolineato.
CMFCListCtrl::IsMultipleSort Controlla se il controllo elenco è in modalità di ordinamento multipla.
CMFCListCtrl::OnCompareItems Chiamato dal framework quando deve confrontare due elementi di controllo elenco.
CMFCListCtrl::OnGetCellBkColor Chiamato dal framework quando deve determinare il colore di sfondo di una singola cella.
CMFCListCtrl::OnGetCellFont Chiamato dal framework quando deve ottenere il tipo di carattere per la cella da disegnare.
CMFCListCtrl::OnGetCellTextColor Chiamato dal framework quando deve determinare il colore del testo di una singola cella.
CMFCListCtrl::RemoveSortColumn Rimuove una colonna di ordinamento dall'elenco di colonne ordinate.
CMFCListCtrl::SetSortColumn Imposta la colonna ordinata corrente e l'ordinamento.
CMFCListCtrl::Sort Ordina il controllo elenco.

Osservazioni:

CMFCListCtrl offre due miglioramenti alla CListCtrl classe Class . In primo luogo, indica che l'ordinamento delle colonne è un'opzione disponibile disegnando automaticamente una freccia di ordinamento sull'intestazione. In secondo luogo, supporta l'ordinamento dei dati su più colonne contemporaneamente.

Esempio

L'esempio seguente illustra come usare i vari metodi nella classe CMFCListCtrl . Nell'esempio viene illustrato come creare un controllo elenco, inserire colonne, inserire elementi, impostare il testo di un elemento e impostare il tipo di carattere del controllo elenco. Questo frammento di codice fa parte dell'esempio demo di 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);

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Requisiti

Intestazione: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Contrassegna le colonne ordinate con un colore di sfondo diverso.

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

Parametri

bMark
[in] Parametro booleano che determina se abilitare un colore di sfondo diverso.

bRedraw
[in] Parametro booleano che determina se ridisegnare immediatamente il controllo.

Osservazioni:

EnableMarkSortedColumn utilizza il metodo CDrawingManager::PixelAlpha per calcolare il colore da utilizzare per le colonne ordinate. Il colore selezionato si basa sul colore di sfondo regolare.

CMFCListCtrl::EnableMultipleSort

Abilita l'ordinamento delle righe di dati nel controllo elenco in base a più colonne.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parametri

bEnable
[in] Valore booleano che specifica se abilitare la modalità di ordinamento di più colonne.

Osservazioni:

Quando si abilita l'ordinamento in base a più colonne, le colonne hanno una gerarchia. Le righe di dati verranno prima ordinate in base alla colonna primaria. Tutti i valori equivalenti vengono quindi ordinati in base a ogni colonna successiva in base alla priorità.

CMFCListCtrl::GetHeaderCtrl

Restituisce un riferimento al controllo intestazione.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Valore restituito

Riferimento all'oggetto sottostante CMFCHeaderCtrl .

Osservazioni:

Il controllo intestazione per un controllo elenco è la finestra che contiene i titoli per le colonne. È in genere posizionato direttamente sopra le colonne.

CMFCListCtrl::IsMultipleSort

Controlla se il controllo elenco supporta attualmente l'ordinamento in più colonne.

BOOL IsMultipleSort() const;

Valore restituito

TRUE se il controllo elenco supporta più ordina; FALSE altrimenti.

Osservazioni:

Quando una CMFCListCtrl classe supporta l'ordinamento multiplo, l'utente può ordinare i dati nel controllo elenco in base a più colonne. Per abilitare l'ordinamento multiplo, chiamare CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

Il framework chiama questo metodo quando confronta due elementi.

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

Parametri

lParam1
[in] Primo elemento da confrontare.

lParam2
[in] Secondo elemento da confrontare.

iColumn
[in] Indice della colonna di ordinamento di questo metodo.

Valore restituito

Intero che indica la posizione relativa dei due elementi. Un valore negativo indica che il primo elemento deve precedere il secondo, un valore positivo indica che il primo elemento deve seguire il secondo e zero indica che i due elementi sono equivalenti.

Osservazioni:

L'implementazione predefinita restituisce sempre 0. Eseguire l'override di questa funzione per fornire un algoritmo di ordinamento personalizzato.

CMFCListCtrl::OnGetCellBkColor

Il framework chiama questo metodo quando deve determinare il colore di sfondo di una singola cella.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parametri

nRow
[in] Riga della cella in questione.

nColumn
[in] Colonna della cella in questione.

Valore restituito

Valore COLOREF che specifica il colore di sfondo della cella.

Osservazioni:

L'implementazione predefinita di non usa i parametri di OnGetCellBkColor input forniti e chiama semplicemente GetBkColor. Pertanto, per impostazione predefinita, l'intero controllo elenco avrà lo stesso colore di sfondo. È possibile eseguire l'override OnGetCellBkColor in una classe derivata per contrassegnare singole celle con un colore di sfondo separato.

CMFCListCtrl::OnGetCellFont

Il framework chiama questo metodo quando ottiene il tipo di carattere per una singola cella.

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

Parametri

nRow
[in] Riga della cella in questione.

nColumn
[in] Colonna della cella in questione.

dwData
[in] Dati definiti dall'utente. L'implementazione predefinita non usa questo parametro.

Valore restituito

Handle per il tipo di carattere utilizzato per la cella corrente.

Osservazioni:

Per impostazione predefinita, questo metodo restituisce NULL. Tutte le celle di un controllo elenco hanno lo stesso tipo di carattere. Eseguire l'override di questo metodo per fornire tipi di carattere diversi per celle diverse.

CMFCListCtrl::OnGetCellTextColor

Il framework chiama questo metodo quando deve determinare il colore del testo di una singola cella.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parametri

nRow
[in] Riga della cella in questione.

nColumn
[in] Colonna della cella in questione.

Valore restituito

Valore COLOREF che specifica il colore del testo della cella.

Osservazioni:

Per impostazione predefinita, questo metodo chiama GetTextColor indipendentemente dai parametri di input. L'intero controllo elenco avrà lo stesso colore del testo. È possibile eseguire l'override OnGetCellTextColor in una classe derivata per contrassegnare singole celle con un colore di testo separato.

CMFCListCtrl::RemoveSortColumn

Rimuove una colonna di ordinamento dall'elenco di colonne ordinate.

void RemoveSortColumn(int iColumn);

Parametri

iColumn
[in] Colonna da rimuovere.

Osservazioni:

Questo metodo rimuove una colonna di ordinamento dal controllo intestazione. CMFCHeaderCtrl::RemoveSortColumnChiama .

CMFCListCtrl::SetSortColumn

Imposta la colonna ordinata corrente e l'ordinamento.

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

Parametri

iColumn
[in] Colonna da ordinare.

bAscending
[in] Valore booleano che specifica l'ordinamento.

bAdd
[in] Valore booleano che specifica se il metodo aggiunge la colonna indicata dall'elenco iColumn di colonne di ordinamento.

Osservazioni:

Questo metodo passa i parametri di input al controllo intestazione usando il metodo CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Ordina il controllo elenco.

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

Parametri

iColumn
[in] Colonna da ordinare.

bAscending
[in] Valore booleano che specifica l'ordinamento.

bAdd
[in] Valore booleano che specifica se questo metodo aggiunge la colonna indicata dall'elenco iColumn di colonne di ordinamento.

Vedi anche

Grafico della gerarchia
Classi
CListCtrl Classe