Sdílet prostřednictvím


CMFCListCtrl Třída

Třída CMFCListCtrl rozšiřuje funkceCListCtrl třídy tím, že podporuje pokročilé funkce CMFCHeaderCtrl řízení hlaviček třídy Třídy.

Syntaxe

class CMFCListCtrl : public CListCtrl

Členové

Veřejné metody

Název Popis
CMFCListCtrl::EnableMarkSortedColumn Umožňuje označit seřazený sloupec jinou barvou pozadí.
CMFCListCtrl::EnableMultipleSort Povolí více režimů řazení.
CMFCListCtrl::GetHeaderCtrl Vrátí odkaz na podtržený ovládací prvek záhlaví.
CMFCListCtrl::IsMultipleSort Zkontroluje, jestli je ovládací prvek seznamu v režimu vícenásobného řazení.
CMFCListCtrl::OnCompareItems Volá se rozhraním, když musí porovnat dvě položky ovládacího prvku seznamu.
CMFCListCtrl::OnGetCellBkColor Volá se rozhraním, když musí určit barvu pozadí jednotlivé buňky.
CMFCListCtrl::OnGetCellFont Volané architekturou, když musí získat písmo pro nakreslenou buňku.
CMFCListCtrl::OnGetCellTextColor Volá se rozhraním, když musí určit barvu textu jednotlivých buněk.
CMFCListCtrl::RemoveSortColumn Odebere sloupec řazení ze seznamu seřazených sloupců.
CMFCListCtrl::SetSortColumn Nastaví aktuální seřazený sloupec a pořadí řazení.
CMFCListCtrl::Sort Seřadí ovládací prvek seznamu.

Poznámky

CMFCListCtrl nabízí dvě vylepšení CListCtrl třídy Class . Nejprve označuje, že řazení sloupců je dostupná možnost automatickým vykreslením šipky řazení v záhlaví. Za druhé podporuje řazení dat na více sloupcích najednou.

Příklad

Následující příklad ukazuje, jak používat různé metody ve CMFCListCtrl třídě. Příklad ukazuje, jak vytvořit ovládací prvek seznamu, vložit sloupce, vložit položky, nastavit text položky a nastavit písmo ovládacího prvku seznamu. Tento fragment kódu je součástí ukázky sady Visual Studio Demo.

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);

Hierarchie dědičnosti

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Požadavky

Záhlaví: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Označí seřazené sloupce jinou barvou pozadí.

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

Parametry

bMark
[v] Logický parametr, který určuje, jestli se má povolit jiná barva pozadí.

bRedraw
[v] Logický parametr, který určuje, zda se má ovládací prvek okamžitě překreslit.

Poznámky

EnableMarkSortedColumn používá metodu CDrawingManager::PixelAlpha k výpočtu barvy, která se má použít pro seřazené sloupce. Výběr barvy vychází z běžné barvy pozadí.

CMFCListCtrl::EnableMultipleSort

Umožňuje řadit řádky dat v ovládacím prvku seznamu podle více sloupců.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parametry

bEnable
[v] Logická hodnota, která určuje, jestli se má povolit režim řazení více sloupců.

Poznámky

Když povolíte řazení na základě více sloupců, mají sloupce hierarchii. Řádky dat budou nejprve seřazeny podle primárního sloupce. Všechny ekvivalentní hodnoty se pak seřadí podle každého dalšího sloupce podle priority.

CMFCListCtrl::GetHeaderCtrl

Vrátí odkaz na ovládací prvek záhlaví.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Návratová hodnota

Odkaz na podkladový CMFCHeaderCtrl objekt.

Poznámky

Ovládací prvek záhlaví ovládacího prvku seznamu je okno, které obsahuje názvy sloupců. Obvykle je umístěn přímo nad sloupci.

CMFCListCtrl::IsMultipleSort

Zkontroluje, jestli ovládací prvek seznamu aktuálně podporuje řazení podle více sloupců.

BOOL IsMultipleSort() const;

Návratová hodnota

TRUE pokud ovládací prvek seznamu podporuje více řazení; FALSE jinak.

Poznámky

CMFCListCtrl Pokud třída podporuje více řazení, může uživatel seřadit data v ovládacím prvku seznamu podle více sloupců. Pokud chcete povolit více řazení, zavolejte CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

Architektura volá tuto metodu při porovnávání dvou položek.

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

Parametry

lParam1
[v] První položka, která se má porovnat.

lParam2
[v] Druhá položka, kterou chcete porovnat.

iColumn
[v] Index sloupce, který tato metoda seřadí.

Návratová hodnota

Celé číslo, které označuje relativní pozici dvou položek. Záporná hodnota označuje, že první položka by měla předcházet druhé, kladná hodnota označuje, že první položka by měla následovat za druhou a nula znamená, že dvě položky jsou ekvivalentní.

Poznámky

Výchozí implementace vždy vrátí hodnotu 0. Přepište tuto funkci tak, aby poskytovala vlastní algoritmus řazení.

CMFCListCtrl::OnGetCellBkColor

Architektura volá tuto metodu, když musí určit barvu pozadí jednotlivé buňky.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parametry

nRow
[v] Řádek příslušné buňky.

nColumn
[v] Sloupec příslušné buňky.

Návratová hodnota

Hodnota COLOREF , která určuje barvu pozadí buňky.

Poznámky

Výchozí implementace OnGetCellBkColor nepoužívá zadané vstupní parametry a místo toho jednoduše volá GetBkColor. Proto ve výchozím nastavení bude mít celý ovládací prvek seznamu stejnou barvu pozadí. V odvozené třídě můžete přepsat OnGetCellBkColor označení jednotlivých buněk samostatnou barvou pozadí.

CMFCListCtrl::OnGetCellFont

Architektura volá tuto metodu, když získá písmo pro jednotlivé buňky.

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

Parametry

nRow
[v] Řádek příslušné buňky.

nColumn
[v] Sloupec příslušné buňky.

dwData
[v] Uživatelsky definovaná data. Výchozí implementace tento parametr nepoužívá.

Návratová hodnota

Popisovač písma použitého pro aktuální buňku.

Poznámky

Ve výchozím nastavení tato metoda vrátí NULL. Všechny buňky v ovládacím prvku seznamu mají stejné písmo. Tuto metodu přepište tak, aby poskytovala různá písma pro různé buňky.

CMFCListCtrl::OnGetCellTextColor

Architektura volá tuto metodu, když musí určit barvu textu jednotlivé buňky.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parametry

nRow
[v] Řádek příslušné buňky.

nColumn
[v] Sloupec příslušné buňky.

Návratová hodnota

Hodnota COLOREF , která určuje barvu textu buňky.

Poznámky

Ve výchozím nastavení tato metoda volá GetTextColor bez ohledu na vstupní parametry. Celý ovládací prvek seznamu bude mít stejnou barvu textu. V odvozené třídě můžete přepsat OnGetCellTextColor označení jednotlivých buněk samostatnou barvou textu.

CMFCListCtrl::RemoveSortColumn

Odebere sloupec řazení ze seznamu seřazených sloupců.

void RemoveSortColumn(int iColumn);

Parametry

iColumn
[v] Sloupec, který chcete odebrat.

Poznámky

Tato metoda odebere sloupec řazení z ovládacího prvku záhlaví. CMFCHeaderCtrl::RemoveSortColumnVolá .

CMFCListCtrl::SetSortColumn

Nastaví aktuální seřazený sloupec a pořadí řazení.

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

Parametry

iColumn
[v] Sloupec, který chcete seřadit.

bAscending
[v] Logická hodnota, která určuje pořadí řazení.

bAdd
[v] Logická hodnota, která určuje, zda metoda přidá sloupec označený iColumn seznamem sloupců řazení.

Poznámky

Tato metoda předává vstupní parametry do ovládacího prvku hlavičky pomocí metody CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Seřadí ovládací prvek seznamu.

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

Parametry

iColumn
[v] Sloupec, který chcete seřadit.

bAscending
[v] Logická hodnota, která určuje pořadí řazení.

bAdd
[v] Logická hodnota, která určuje, zda tato metoda přidá sloupec označený seznamem iColumn sloupců řazení.

Viz také

Graf hierarchie
Třídy
CListCtrl Třída