Share via


La classe CMFCListCtrl

La CMFCListCtrl classe étend les fonctionnalités de CListCtrl la classe Class en prenant en charge la fonctionnalité de contrôle d’en-tête avancée de la CMFCHeaderCtrl classe.

Syntaxe

class CMFCListCtrl : public CListCtrl

Membres

Méthodes publiques

Nom Description
CMFCListCtrl::EnableMarkSortedColumn Permet de marquer une colonne triée avec une couleur d’arrière-plan différente.
CMFCListCtrl::EnableMultipleSort Active plusieurs modes de tri.
CMFCListCtrl::GetHeaderCtrl Retourne une référence au contrôle d’en-tête souligné.
CMFCListCtrl::IsMultipleSort Vérifie si le contrôle de liste est en mode de tri multiple.
CMFCListCtrl::OnCompareItems Appelé par l’infrastructure lorsqu’il doit comparer deux éléments de contrôle de liste.
CMFCListCtrl::OnGetCellBkColor Appelé par l’infrastructure lorsqu’il doit déterminer la couleur d’arrière-plan d’une cellule individuelle.
CMFCListCtrl::OnGetCellFont Appelé par l’infrastructure lorsqu’il doit obtenir la police de la cellule dessinée.
CMFCListCtrl::OnGetCellTextColor Appelé par l’infrastructure lorsqu’il doit déterminer la couleur de texte d’une cellule individuelle.
CMFCListCtrl::RemoveSortColumn Supprime une colonne de tri de la liste des colonnes triées.
CMFCListCtrl::SetSortColumn Définit la colonne triée actuelle et l’ordre de tri.
CMFCListCtrl::Sort Trie le contrôle de liste.

Notes

CMFCListCtrl offre deux améliorations à CListCtrl la classe Class . Tout d’abord, il indique que le tri de colonne est une option disponible en dessinant automatiquement une flèche de tri sur l’en-tête. Ensuite, il prend en charge le tri des données sur plusieurs colonnes en même temps.

Exemple

L’exemple suivant montre comment utiliser différentes méthodes de la classe CMFCListCtrl . L’exemple montre comment créer un contrôle de liste, insérer des colonnes, insérer des éléments, définir le texte d’un élément et définir la police du contrôle de liste. Cet extrait de code fait partie de l’exemple de démonstration 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);

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CListCtrl

CMFCListCtrl

Spécifications

En-têteafxlistctrl.h:

CMFCListCtrl::EnableMarkSortedColumn

Marque les colonnes triées avec une couleur d’arrière-plan différente.

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

Paramètres

bMark
[in] Paramètre booléen qui détermine s’il faut activer une couleur d’arrière-plan différente.

bRedraw
[in] Paramètre booléen qui détermine s’il faut redessiner immédiatement le contrôle.

Notes

EnableMarkSortedColumn utilise la méthode CDrawingManager::PixelAlpha pour calculer la couleur à utiliser pour les colonnes triées. La couleur choisie est basée sur la couleur d’arrière-plan normale.

CMFCListCtrl::EnableMultipleSort

Active le tri des lignes de données dans le contrôle de liste par plusieurs colonnes.

void EnableMultipleSort(BOOL bEnable = TRUE);

Paramètres

bEnable
[in] Boolean qui spécifie s’il faut activer plusieurs modes de tri de colonne.

Notes

Lorsque vous activez le tri en fonction de plusieurs colonnes, les colonnes ont une hiérarchie. Les lignes de données seront d’abord triées par la colonne primaire. Toutes les valeurs équivalentes sont ensuite triées par chaque colonne suivante en fonction de la priorité.

CMFCListCtrl::GetHeaderCtrl

Retourne une référence au contrôle d’en-tête.

virtual CMFCHeaderCtrl& GetHeaderCtrl();

Valeur de retour

Référence à l’objet sous-jacent CMFCHeaderCtrl .

Notes

Le contrôle d’en-tête d’un contrôle de liste est la fenêtre qui contient les titres des colonnes. Il est généralement positionné directement au-dessus des colonnes.

CMFCListCtrl::IsMultipleSort

Vérifie si le contrôle de liste prend actuellement en charge le tri sur plusieurs colonnes.

BOOL IsMultipleSort() const;

Valeur de retour

TRUE si le contrôle de liste prend en charge plusieurs tris ; FALSE Sinon.

Notes

Lorsqu’une CMFCListCtrl classe prend en charge plusieurs tris, l’utilisateur peut trier les données dans le contrôle de liste par plusieurs colonnes. Pour activer plusieurs tris, appelez CMFCListCtrl::EnableMultipleSort.

CMFCListCtrl::OnCompareItems

L’infrastructure appelle cette méthode lorsqu’elle compare deux éléments.

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

Paramètres

lParam1
[in] Premier élément à comparer.

lParam2
[in] Deuxième élément à comparer.

iColumn
[in] Index de la colonne que cette méthode trie.

Valeur de retour

Entier qui indique la position relative des deux éléments. Une valeur négative indique que le premier élément doit précéder la seconde, une valeur positive indique que le premier élément doit suivre le deuxième, et zéro signifie que les deux éléments sont équivalents.

Notes

L’implémentation par défaut retourne toujours 0. Remplacez cette fonction pour fournir votre propre algorithme de tri.

CMFCListCtrl::OnGetCellBkColor

L’infrastructure appelle cette méthode quand elle doit déterminer la couleur d’arrière-plan d’une cellule individuelle.

virtual COLORREF OnGetCellBkColor(
    int nRow,
    int nColumn);

Paramètres

nRow
[in] Ligne de la cellule en question.

nColumn
[in] Colonne de la cellule en question.

Valeur de retour

Valeur COLOREF qui spécifie la couleur d’arrière-plan de la cellule.

Notes

L’implémentation par défaut de OnGetCellBkColor n’utilise pas les paramètres d’entrée fournis et appelle GetBkColorsimplement . Par conséquent, par défaut, l’ensemble du contrôle de liste aura la même couleur d’arrière-plan. Vous pouvez remplacer OnGetCellBkColor dans une classe dérivée pour marquer des cellules individuelles avec une couleur d’arrière-plan distincte.

CMFCListCtrl::OnGetCellFont

L’infrastructure appelle cette méthode lorsqu’elle obtient la police d’une cellule individuelle.

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

Paramètres

nRow
[in] Ligne de la cellule en question.

nColumn
[in] Colonne de la cellule en question.

dwData
[in] Données définies par l’utilisateur. L’implémentation par défaut n’utilise pas ce paramètre.

Valeur de retour

Handle de la police utilisée pour la cellule active.

Notes

Par défaut, cette méthode retourne NULL. Toutes les cellules d’un contrôle de liste ont la même police. Remplacez cette méthode pour fournir différentes polices pour différentes cellules.

CMFCListCtrl::OnGetCellTextColor

L’infrastructure appelle cette méthode lorsqu’elle doit déterminer la couleur de texte d’une cellule individuelle.

virtual COLORREF OnGetCellTextColor(
    int nRow,
    int nColumn);

Paramètres

nRow
[in] Ligne de la cellule en question.

nColumn
[in] Colonne de la cellule en question.

Valeur de retour

Valeur COLOREF qui spécifie la couleur de texte de la cellule.

Notes

Par défaut, cette méthode appelle GetTextColor indépendamment des paramètres d’entrée. Le contrôle de liste entier aura la même couleur de texte. Vous pouvez remplacer OnGetCellTextColor dans une classe dérivée pour marquer des cellules individuelles avec une couleur de texte distincte.

CMFCListCtrl::RemoveSortColumn

Supprime une colonne de tri de la liste des colonnes triées.

void RemoveSortColumn(int iColumn);

Paramètres

iColumn
[in] Colonne à supprimer.

Notes

Cette méthode supprime une colonne de tri du contrôle d’en-tête. Il appelle CMFCHeaderCtrl::RemoveSortColumn.

CMFCListCtrl::SetSortColumn

Définit la colonne triée actuelle et l’ordre de tri.

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

Paramètres

iColumn
[in] Colonne à trier.

bAscending
[in] Valeur booléenne qui spécifie l’ordre de tri.

bAdd
[in] Valeur booléenne qui spécifie si la méthode ajoute la colonne indiquée par iColumn la liste des colonnes de tri.

Notes

Cette méthode transmet les paramètres d’entrée au contrôle d’en-tête à l’aide de la méthode CMFCHeaderCtrl::SetSortColumn.

CMFCListCtrl::Sort

Trie le contrôle de liste.

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

Paramètres

iColumn
[in] Colonne à trier.

bAscending
[in] Valeur booléenne qui spécifie l’ordre de tri.

bAdd
[in] Valeur booléenne qui spécifie si cette méthode ajoute la colonne indiquée par iColumn la liste des colonnes de tri.

Voir aussi

Graphique hiérarchique
Classes
CListCtrl Classe