CMFCListCtrl-Klasse

Die CMFCListCtrl Klasse erweitert die Funktionalität der CListCtrl Klasse , indem die erweiterte Headersteuerelementfunktion der CMFCHeaderCtrl Klasse unterstützt wird.

Syntax

class CMFCListCtrl : public CListCtrl

Member

Öffentliche Methoden

Name Beschreibung
CMFCListCtrl::EnableMarkSortedColumn Ermöglicht das Markieren einer sortierten Spalte mit einer anderen Hintergrundfarbe.
CMFCListCtrl::EnableMultipleSort Aktiviert den Mehrfachsortierungsmodus.
CMFCListCtrl::GetHeaderCtrl Gibt einen Verweis auf das unterstrichene Kopfzeilensteuerelement zurück.
CMFCListCtrl::IsMultipleSort Überprüft, ob sich das Listensteuerelement im mehrfachen Sortiermodus befindet.
CMFCListCtrl::OnCompareItems Wird vom Framework aufgerufen, wenn zwei Listensteuerelementelemente verglichen werden müssen.
CMFCListCtrl::OnGetCellBkColor Wird vom Framework aufgerufen, wenn die Hintergrundfarbe einer einzelnen Zelle bestimmt werden muss.
CMFCListCtrl::OnGetCellFont Wird vom Framework aufgerufen, wenn die Schriftart für die zu zeichnende Zelle abgerufen werden muss.
CMFCListCtrl::OnGetCellTextColor Wird vom Rahmen aufgerufen, wenn die Textfarbe einer einzelnen Zelle bestimmt werden muss.
CMFCListCtrl::RemoveSortColumn Entfernt eine Sortierspalte aus der Liste sortierter Spalten.
CMFCListCtrl::SetSortColumn Legt die aktuelle sortierte Spalte und die Sortierreihenfolge fest.
CMFCListCtrl::Sort Sortiert das Listensteuerelement.

Hinweise

CMFCListCtrl bietet zwei Verbesserungen an CListCtrl der Klasse . Zunächst wird angegeben, dass die Spaltensortierung eine verfügbare Option ist, indem automatisch ein Sortierpfeil auf der Kopfzeile gezeichnet wird. Zweitens wird die Datensortierung auf mehreren Spalten gleichzeitig unterstützt.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung verschiedener Methoden in der CMFCListCtrl -Klasse. Das Beispiel zeigt, wie Sie ein Listensteuerelement erstellen, Spalten einfügen, Elemente einfügen, den Text eines Elements festlegen und die Schriftart des Listensteuerelements festlegen. Dieser Codeausschnitt ist Teil des Visual Studio Demo-Beispiels.

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

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Anforderungen

Header: afxlistctrl.h

CMFCListCtrl::EnableMarkSortedColumn

Markiert die sortierten Spalten mit einer anderen Hintergrundfarbe.

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

Parameter

bMark
[in] Ein boolescher Parameter, der bestimmt, ob eine andere Hintergrundfarbe aktiviert werden soll.

bRedraw
[in] Ein boolescher Parameter, der bestimmt, ob das Steuerelement sofort neu gezeichnet werden soll.

Hinweise

EnableMarkSortedColumn verwendet die Methode CDrawingManager::PixelAlpha , um zu berechnen, welche Farbe für sortierte Spalten verwendet werden soll. Die ausgewählte Farbe basiert auf der normalen Hintergrundfarbe.

CMFCListCtrl::EnableMultipleSort

Ermöglicht das Sortieren der Datenzeilen im Listensteuerelement nach mehreren Spalten.

void EnableMultipleSort(BOOL bEnable = TRUE);

Parameter

bEnable
[in] Ein Boolescher Wert, der angibt, ob der Sortiermodus für mehrere Spalten aktiviert werden soll.

Hinweise

Wenn Sie die Sortierung basierend auf mehreren Spalten aktivieren, verfügen die Spalten über eine Hierarchie. Die Datenzeilen werden zuerst nach der primären Spalte sortiert. Alle entsprechenden Werte werden dann nach jeder nachfolgenden Spalte basierend auf der Priorität sortiert.

CMFCListCtrl::GetHeaderCtrl

Gibt einen Verweis auf das Kopfzeilensteuerelement zurück.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Rückgabewert

Ein Verweis auf das zugrunde liegende CMFCHeaderCtrl Objekt.

Hinweise

Das Kopfzeilensteuerelement für ein Listensteuerelement ist das Fenster, das die Titel für die Spalten enthält. Sie wird in der Regel direkt über den Spalten positioniert.

CMFCListCtrl::IsMultipleSort

Überprüft, ob das Listensteuerelement derzeit das Sortieren nach mehreren Spalten unterstützt.

BOOL IsMultipleSort() const;

Rückgabewert

TRUE wenn das Listensteuerelement mehrere Sortierungen unterstützt; FALSE sonst.

Hinweise

Wenn eine CMFCListCtrl Klasse mehrere Sortierungen unterstützt, kann der Benutzer die Daten im Listensteuerelement nach mehreren Spalten sortieren. Rufen Sie auf, um CMFCListCtrl::EnableMultipleSortmehrere Sortierungen zu aktivieren.

CMFCListCtrl::OnCompareItems

Das Framework ruft diese Methode auf, wenn sie zwei Elemente vergleicht.

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

Parameter

lParam1
[in] Das erste zu vergleichende Element.

lParam2
[in] Das zweite zu vergleichende Element.

iColumn
[in] Der Index der Spalte, die diese Methode sortiert.

Rückgabewert

Eine ganze Zahl, die die relative Position der beiden Elemente angibt. Ein negativer Wert gibt an, dass das erste Element dem zweiten vorangestellt werden soll, ein positiver Wert gibt an, dass das erste Element auf die zweite folgen soll, und null bedeutet, dass die beiden Elemente gleichwertig sind.

Hinweise

Die Standardimplementierung gibt immer 0 zurück. Überschreiben Sie diese Funktion, um Ihren eigenen Sortieralgorithmus bereitzustellen.

CMFCListCtrl::OnGetCellBkColor

Das Framework ruft diese Methode auf, wenn sie die Hintergrundfarbe einer einzelnen Zelle bestimmen muss.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Parameter

nRow
[in] Die Zeile der betreffenden Zelle.

nColumn
[in] Die Spalte der betreffenden Zelle.

Rückgabewert

Ein COLOREF Wert, der die Hintergrundfarbe der Zelle angibt.

Hinweise

Die Standardimplementierung verwendet OnGetCellBkColor nicht die bereitgestellten Eingabeparameter und ruft stattdessen einfach auf GetBkColor. Daher hat das gesamte Listensteuerelement standardmäßig dieselbe Hintergrundfarbe. Sie können in einer abgeleiteten Klasse außer Kraft setzen OnGetCellBkColor , um einzelne Zellen mit einer separaten Hintergrundfarbe zu markieren.

CMFCListCtrl::OnGetCellFont

Das Framework ruft diese Methode auf, wenn sie die Schriftart für eine einzelne Zelle abruft.

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

Parameter

nRow
[in] Die Zeile der betreffenden Zelle.

nColumn
[in] Die Spalte der betreffenden Zelle.

dwData
[in] Benutzerdefinierte Daten. Die Standardimplementierung verwendet diesen Parameter nicht.

Rückgabewert

Ein Handle für die Schriftart, die für die aktuelle Zelle verwendet wird.

Hinweise

Diese Methode gibt standardmäßig zurück NULL. Alle Zellen in einem Listensteuerelement haben dieselbe Schriftart. Überschreiben Sie diese Methode, um unterschiedliche Schriftarten für unterschiedliche Zellen bereitzustellen.

CMFCListCtrl::OnGetCellTextColor

Das Framework ruft diese Methode auf, wenn sie die Textfarbe einer einzelnen Zelle bestimmen muss.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Parameter

nRow
[in] Die Zeile der betreffenden Zelle.

nColumn
[in] Die Spalte der betreffenden Zelle.

Rückgabewert

Ein COLOREF Wert, der die Textfarbe der Zelle angibt.

Hinweise

Diese Methode ruft standardmäßig unabhängig von Eingabeparametern auf GetTextColor . Das gesamte Listensteuerelement hat dieselbe Textfarbe. Sie können in einer abgeleiteten Klasse außer Kraft setzen OnGetCellTextColor , um einzelne Zellen mit einer separaten Textfarbe zu markieren.

CMFCListCtrl::RemoveSortColumn

Entfernt eine Sortierspalte aus der Liste sortierter Spalten.

void RemoveSortColumn(int iColumn);

Parameter

iColumn
[in] Die zu entfernende Spalte.

Hinweise

Mit dieser Methode wird eine Sortierspalte aus dem Kopfzeilensteuerelement entfernt. Es wird aufgerufen CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Legt die aktuelle sortierte Spalte und die Sortierreihenfolge fest.

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

Parameter

iColumn
[in] Die spalte, die sortiert werden soll.

bAscending
[in] Ein Boolescher Wert, der die Sortierreihenfolge angibt.

bAdd
[in] Ein Boolescher Wert, der angibt, ob die Methode die Spalte hinzufügt, die in iColumn der Liste der Sortierspalten angegeben ist.

Hinweise

Diese Methode übergibt die Eingabeparameter mithilfe der Methode CMFCHeaderCtrl::SetSortColumnan das Headersteuerelement.

CMFCListCtrl::Sort

Sortiert das Listensteuerelement.

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

Parameter

iColumn
[in] Die spalte, die sortiert werden soll.

bAscending
[in] Ein Boolescher Wert, der die Sortierreihenfolge angibt.

bAdd
[in] Ein Boolescher Wert, der angibt, ob diese Methode die Spalte hinzufügt, die der iColumn Liste der Sortierspalten angezeigt wird.

Siehe auch

Hierarchiediagramm
Klassen
CListCtrl Klasse