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