Udostępnij za pośrednictwem


CMFCListCtrl Klasa

Klasa CMFCListCtrl rozszerza funkcjonalność CListCtrl klasy, obsługując zaawansowane funkcje CMFCHeaderCtrl sterowania nagłówkami klasy.

Składnia

class CMFCListCtrl : public CListCtrl

Elementy członkowskie

Metody publiczne

Nazwa/nazwisko opis
CMFCListCtrl::EnableMarkSortedColumn Umożliwia oznaczanie posortowanej kolumny przy użyciu innego koloru tła.
CMFCListCtrl::EnableMultipleSort Włącza wiele trybów sortowania.
CMFCListCtrl::GetHeaderCtrl Zwraca odwołanie do podkreślonej kontrolki nagłówka.
CMFCListCtrl::IsMultipleSort Sprawdza, czy kontrolka listy jest w trybie sortowania wielu.
CMFCListCtrl::OnCompareItems Wywoływana przez platformę, gdy musi porównać dwa elementy kontrolki listy.
CMFCListCtrl::OnGetCellBkColor Wywoływana przez strukturę, gdy musi określić kolor tła pojedynczej komórki.
CMFCListCtrl::OnGetCellFont Wywoływana przez strukturę, gdy musi uzyskać czcionkę dla narysowanej komórki.
CMFCListCtrl::OnGetCellTextColor Wywoływana przez platformę, gdy musi określić kolor tekstu pojedynczej komórki.
CMFCListCtrl::RemoveSortColumn Usuwa kolumnę sortowania z listy posortowanych kolumn.
CMFCListCtrl::SetSortColumn Ustawia bieżącą posortowaną kolumnę i kolejność sortowania.
CMFCListCtrl::Sort Sortuje kontrolkę listy.

Uwagi

CMFCListCtrl Oferuje dwa ulepszenia CListCtrl klasy Class . Najpierw wskazuje, że sortowanie kolumn jest dostępną opcją, automatycznie rysując strzałkę sortowania w nagłówku. Po drugie obsługuje sortowanie danych w wielu kolumnach jednocześnie.

Przykład

W poniższym przykładzie pokazano, jak używać różnych metod w CMFCListCtrl klasie . W przykładzie pokazano, jak utworzyć kontrolkę listy, wstawić kolumny, wstawić elementy, ustawić tekst elementu i ustawić czcionkę kontrolki listy. Ten fragment kodu jest częścią przykładu pokazowego programu 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);

Hierarchia dziedziczenia

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Wymagania

Nagłówek: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Oznacza posortowane kolumny z innym kolorem tła.

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

Parametry

bMark
[in] Parametr logiczny, który określa, czy włączyć inny kolor tła.

bRedraw
[in] Parametr logiczny, który określa, czy natychmiast ponownie wyrysować kontrolkę.

Uwagi

EnableMarkSortedColumn metoda używa metody CDrawingManager::PixelAlpha do obliczania koloru, który ma być używany dla posortowanych kolumn. Wybrany kolor jest oparty na zwykłym kolorze tła.

CMFCListCtrl::EnableMultipleSort

Umożliwia sortowanie wierszy danych w kontrolce listy według wielu kolumn.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parametry

bEnable
[in] Wartość logiczna określająca, czy włączyć tryb sortowania wielu kolumn.

Uwagi

Po włączeniu sortowania na podstawie wielu kolumn kolumn mają hierarchię. Wiersze danych będą najpierw sortowane według kolumny podstawowej. Wszystkie równoważne wartości są następnie sortowane według każdej kolejnej kolumny na podstawie priorytetu.

CMFCListCtrl::GetHeaderCtrl

Zwraca odwołanie do kontrolki nagłówka.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Wartość zwracana

Odwołanie do obiektu bazowego CMFCHeaderCtrl .

Uwagi

Kontrolka nagłówka kontrolki listy to okno zawierające tytuły kolumn. Zazwyczaj znajduje się on bezpośrednio nad kolumnami.

CMFCListCtrl::IsMultipleSort

Sprawdza, czy kontrolka listy obsługuje obecnie sortowanie w wielu kolumnach.

BOOL IsMultipleSort() const;

Wartość zwracana

TRUE jeśli kontrolka listy obsługuje wiele sortowania; FALSE inaczej.

Uwagi

CMFCListCtrl Gdy klasa obsługuje wiele sortowania, użytkownik może sortować dane w kontrolce listy według wielu kolumn. Aby włączyć wiele sortowania, wywołaj metodę CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

Struktura wywołuje tę metodę podczas porównywania dwóch elementów.

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

Parametry

lParam1
[in] Pierwszy element do porównania.

lParam2
[in] Drugi element do porównania.

iColumn
[in] Indeks kolumny, którą ta metoda sortuje.

Wartość zwracana

Liczba całkowita wskazująca względną pozycję dwóch elementów. Wartość ujemna wskazuje, że pierwszy element powinien poprzedzać drugą, wartość dodatnia wskazuje, że pierwszy element powinien podążać za drugim, a zero oznacza, że dwa elementy są równoważne.

Uwagi

Domyślna implementacja zawsze zwraca wartość 0. Zastąpi tę funkcję, aby zapewnić własny algorytm sortowania.

CMFCListCtrl::OnGetCellBkColor

Struktura wywołuje tę metodę, gdy musi określić kolor tła pojedynczej komórki.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parametry

nRow
[in] Wiersz komórki, o których mowa.

nColumn
[in] Kolumna danej komórki.

Wartość zwracana

COLOREF Wartość określająca kolor tła komórki.

Uwagi

Domyślna implementacja polecenia nie używa podanych OnGetCellBkColor parametrów wejściowych, a zamiast tego wywołuje metodę GetBkColor. W związku z tym domyślnie cała kontrolka listy będzie miała ten sam kolor tła. Możesz zastąpić OnGetCellBkColor klasę pochodną, aby oznaczyć poszczególne komórki oddzielnym kolorem tła.

CMFCListCtrl::OnGetCellFont

Struktura wywołuje tę metodę, gdy uzyskuje czcionkę dla pojedynczej komórki.

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

Parametry

nRow
[in] Wiersz komórki, o których mowa.

nColumn
[in] Kolumna danej komórki.

dwData
[in] Dane zdefiniowane przez użytkownika. Domyślna implementacja nie używa tego parametru.

Wartość zwracana

Uchwyt czcionki używany dla bieżącej komórki.

Uwagi

Domyślnie ta metoda zwraca wartość NULL. Wszystkie komórki w kontrolce listy mają tę samą czcionkę. Zastąpij tę metodę, aby udostępnić różne czcionki dla różnych komórek.

CMFCListCtrl::OnGetCellTextColor

Struktura wywołuje tę metodę, gdy musi określić kolor tekstu pojedynczej komórki.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parametry

nRow
[in] Wiersz komórki, o których mowa.

nColumn
[in] Kolumna danej komórki.

Wartość zwracana

COLOREF Wartość określająca kolor tekstu komórki.

Uwagi

Domyślnie ta metoda wywołuje GetTextColor niezależnie od parametrów wejściowych. Cała kontrolka listy będzie miała ten sam kolor tekstu. Możesz zastąpić OnGetCellTextColor klasę pochodną, aby oznaczyć poszczególne komórki oddzielnym kolorem tekstu.

CMFCListCtrl::RemoveSortColumn

Usuwa kolumnę sortowania z listy posortowanych kolumn.

void RemoveSortColumn(int iColumn);

Parametry

iColumn
[in] Kolumna do usunięcia.

Uwagi

Ta metoda usuwa kolumnę sortowania z kontrolki nagłówka. Wywołuje metodę CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Ustawia bieżącą posortowaną kolumnę i kolejność sortowania.

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

Parametry

iColumn
[in] Kolumna do sortowania.

bAscending
[in] Wartość logiczna określająca kolejność sortowania.

bAdd
[in] Wartość logiczna określająca, czy metoda dodaje kolumnę wskazaną przez iColumn do listy kolumn sortowania.

Uwagi

Ta metoda przekazuje parametry wejściowe do kontrolki nagłówka przy użyciu metody CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Sortuje kontrolkę listy.

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

Parametry

iColumn
[in] Kolumna do sortowania.

bAscending
[in] Wartość logiczna określająca kolejność sortowania.

bAdd
[in] Wartość logiczna określająca, czy ta metoda dodaje kolumnę wskazaną przez iColumn do listy kolumn sortowania.

Zobacz też

Wykres hierarchii
Klasy
CListCtrl Klasa