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
Spécifications
En-tête : afxlistctrl.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
autrement.
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 GetBkColor
simplement . 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.