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
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::RemoveSortColumn
Volá .
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í.