CMFCHeaderCtrl, classe
La CMFCHeaderCtrl
classe prend en charge le tri de plusieurs colonnes dans un contrôle d’en-tête.
Syntaxe
class CMFCHeaderCtrl : public CHeaderCtrl
Membres
Constructeurs publics
Nom | Description |
---|---|
CMFCHeaderCtrl ::CMFCHeaderCtrl | Construit un objet CMFCHeaderCtrl . |
CMFCHeaderCtrl::~CMFCHeaderCtrl |
Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CMFCHeaderCtrl ::EnableMultipleSort | Active ou désactive le mode de tri de plusieurs colonnes pour le contrôle d’en-tête actuel. |
CMFCHeaderCtrl ::GetColumnState | Indique si une colonne n’est pas triée ou triée dans l’ordre croissant ou décroissant. |
CMFCHeaderCtrl ::GetSortColumn | Récupère l’index de base zéro de la première colonne triée dans le contrôle d’en-tête. |
CMFCHeaderCtrl::GetThisClass |
Utilisé par l’infrastructure pour obtenir un pointeur vers l’objet CRuntimeClass associé à ce type de classe. |
CMFCHeaderCtrl ::IsAscending | Indique si une colonne du contrôle d’en-tête est triée dans l’ordre croissant. |
CMFCHeaderCtrl ::IsDialogControl | Indique si la fenêtre parente du contrôle d’en-tête actuel est une boîte de dialogue. |
CMFCHeaderCtrl ::IsMultipleSort | Indique si le contrôle d’en-tête actuel est en mode de tri de plusieurs colonnes. |
CMFCHeaderCtrl ::RemoveSortColumn | Supprime la colonne spécifiée de la liste des colonnes de tri. |
CMFCHeaderCtrl ::SetSortColumn | Définit l’ordre de tri d’une colonne spécifiée dans un contrôle d’en-tête. |
Méthodes protégées
Nom | Description |
---|---|
CMFCHeaderCtrl ::OnDrawItem | Appelé par l’infrastructure pour dessiner une colonne de contrôle d’en-tête. |
CMFCHeaderCtrl ::OnDrawSortArrow | Appelé par l’infrastructure pour dessiner la flèche de tri. |
CMFCHeaderCtrl ::OnFillBackground | Appelé par l’infrastructure pour remplir l’arrière-plan d’une colonne de contrôle d’en-tête. |
Exemple
L’exemple suivant montre comment construire un objet de la CMFCHeaderCtrl
classe et comment activer plusieurs modes de tri de colonne pour le contrôle d’en-tête actuel.
CMFCHeaderCtrl *headerCtrl = new CMFCHeaderCtrl();
headerCtrl->EnableMultipleSort();
Notes
La CMFCHeaderCtrl
classe dessine une flèche de tri sur une colonne de contrôle d’en-tête pour indiquer que la colonne est triée. Utilisez plusieurs modes de tri de colonnes si un ensemble de colonnes dans le contrôle de liste parent ( classe CMFCListCtrl) peut être trié en même temps.
Hiérarchie d'héritage
Spécifications
En-tête : afxheaderctrl.h
CMFCHeaderCtrl ::CMFCHeaderCtrl
Construit un objet CMFCHeaderCtrl
.
CMFCHeaderCtrl::CMFCHeaderCtrl()
Notes
Ce constructeur initialise les variables membres suivantes aux valeurs spécifiées :
Variable membre | Valeur |
---|---|
m_bIsMousePressed |
FAUX |
m_bMultipleSort |
FAUX |
m_bAscending |
VRAI |
m_nHighlightedItem |
-1 |
m_bTracked |
FAUX |
m_bIsDlgControl |
FALSE |
m_hFont |
NULL |
CMFCHeaderCtrl ::EnableMultipleSort
Active ou désactive le mode de tri de plusieurs colonnes pour le contrôle d’en-tête actuel.
void EnableMultipleSort(BOOL bEnable=TRUE);
Paramètres
bEnable
[in] TRUE pour activer le mode de tri de plusieurs colonnes ; FALSE pour désactiver le mode de tri de plusieurs colonnes et supprimer toutes les colonnes de la liste des colonnes triées. La valeur par défaut est TRUE.
Notes
Utilisez cette méthode pour activer ou désactiver le mode de tri de plusieurs colonnes. Deux colonnes ou plus peuvent participer à un tri si le contrôle d’en-tête est en mode de tri de plusieurs colonnes.
CMFCHeaderCtrl ::GetColumnState
Indique si une colonne n’est pas triée ou triée dans l’ordre croissant ou décroissant.
int GetColumnState(int iColumn) const;
Paramètres
iColumn
[in] Index de base zéro d’une colonne.
Valeur de retour
Valeur qui indique l’état de tri de la colonne spécifiée. Le tableau suivant répertorie les valeurs de sortie possibles :
Valeur | Description |
---|---|
-1 | Trié dans l’ordre décroissant. |
0 | Pas trié. |
1 | Trié dans l’ordre croissant. |
Notes
CMFCHeaderCtrl ::GetSortColumn
Récupère l’index de base zéro de la première colonne triée dans le contrôle d’en-tête.
int GetSortColumn() const;
Valeur de retour
Index d’une colonne triée ou -1 si aucune colonne triée n’est trouvée.
Notes
Si le contrôle d’en-tête est en mode de tri de plusieurs colonnes et que vous avez compilé l’application en mode débogage, cette méthode affirme et vous conseille d’utiliser la méthode CMFCHeaderCtrl ::GetColumnState à la place. Si le contrôle d’en-tête est en mode de tri de plusieurs colonnes et que vous avez compilé l’application en mode commercial, cette méthode retourne -1.
CMFCHeaderCtrl ::IsAscending
Indique si une colonne du contrôle d’en-tête est triée dans l’ordre croissant.
BOOL IsAscending() const;
Valeur de retour
TRUE si une colonne du contrôle d’en-tête est triée dans l’ordre croissant ; sinon, FALSE.
Notes
La valeur retournée par cette méthode est utilisée pour afficher la flèche de tri appropriée sur l’élément de contrôle d’en-tête. Utilisez la méthode CMFCHeaderCtrl ::SetSortColumn pour définir l’ordre de tri.
CMFCHeaderCtrl ::IsDialogControl
Indique si la fenêtre parente du contrôle d’en-tête actuel est une boîte de dialogue.
BOOL IsDialogControl() const;
Valeur de retour
TRUE si la fenêtre parente du contrôle d’en-tête actuel est une boîte de dialogue ; sinon, FALSE.
CMFCHeaderCtrl ::IsMultipleSort
Indique si le contrôle d’en-tête actuel est en mode de tri de plusieurs colonnes.
BOOL IsMultipleSort() const;
Valeur de retour
TRUE si le mode de tri de plusieurs colonnes est activé ; sinon, FALSE.
Notes
Utilisez la méthode CMFCHeaderCtrl ::EnableMultipleSort pour activer ou désactiver plusieurs modes de tri de colonne. Deux colonnes ou plus peuvent participer à un tri si le contrôle d’en-tête est en mode de tri de plusieurs colonnes.
CMFCHeaderCtrl ::OnDrawItem
Appelé par l’infrastructure pour dessiner une colonne de contrôle d’en-tête.
virtual void OnDrawItem(
CDC* pDC,
int iItem,
CRect rect,
BOOL bIsPressed,
BOOL bIsHighlighted);
Paramètres
pDC
[in] Pointeur vers un contexte d’appareil.
iItem
[in] Index de base zéro de l’élément à dessiner.
rect
[in] Rectangle englobant de l’élément à dessiner.
bIsPressed
[in] TRUE pour dessiner l’élément dans un état appuyé ; sinon, FALSE.
bIsHighlighted
[in] TRUE pour dessiner l’élément en surbrillance ; sinon, FALSE.
CMFCHeaderCtrl ::OnDrawSortArrow
Appelé par l’infrastructure pour dessiner la flèche de tri.
virtual void OnDrawSortArrow(
CDC* pDC,
CRect rectArrow);
Paramètres
pDC
[in] Pointeur vers un contexte d’appareil.
rectArrow
[in] Rectangle englobant de la flèche de tri.
CMFCHeaderCtrl ::OnFillBackground
Appelé par l’infrastructure pour remplir l’arrière-plan d’une colonne de contrôle d’en-tête.
virtual void OnFillBackground(CDC* pDC);
Paramètres
pDC
[in] Pointeur vers un contexte d’appareil.
Notes
CMFCHeaderCtrl ::RemoveSortColumn
Supprime la colonne spécifiée de la liste des colonnes de tri.
void RemoveSortColumn(int iColumn);
Paramètres
iColumn
[in] Index de base zéro de la colonne à supprimer.
CMFCHeaderCtrl ::SetSortColumn
Définit l’ordre de tri d’une colonne spécifiée dans un contrôle d’en-tête.
void SetSortColumn(
int iColumn,
BOOL bAscending=TRUE,
BOOL bAdd=FALSE);
Paramètres
iColumn
[in] Index de base zéro d’une colonne de contrôle d’en-tête. Si ce paramètre est inférieur à zéro, cette méthode supprime toutes les colonnes de la liste des colonnes de tri.
bAscending
[in] Spécifie l’ordre de tri de la colonne spécifiée par le paramètre iColumn . TRUE pour définir l’ordre croissant ; FALSE pour définir l’ordre décroissant. La valeur par défaut est TRUE.
bAdd
[in] TRUE pour définir l’ordre de tri de la colonne spécifiée par le paramètre iColumn .
Si le contrôle d’en-tête actuel est en mode de tri de plusieurs colonnes, cette méthode ajoute la colonne spécifiée à la liste des colonnes de tri. Utilisez CMFCHeaderCtrl ::EnableMultipleSort pour définir plusieurs modes de tri de colonne.
Si le mode de tri de plusieurs colonnes n’est pas défini et que cette méthode est compilée en mode débogage, cette méthode affirme. Si le mode de tri de plusieurs colonnes n’est pas défini et que cette méthode est compilée en mode commercial, cette méthode supprime d’abord toutes les colonnes de la liste des colonnes de tri, puis ajoute la colonne spécifiée à la liste.
FALSE pour supprimer toutes les colonnes de la liste des colonnes de tri, puis ajouter la colonne spécifiée à la liste. La valeur par défaut est FALSE.
Notes
Utilisez cette méthode pour définir l’ordre de tri d’une colonne. Si nécessaire, cette méthode ajoute la colonne à la liste des colonnes de tri. Le contrôle d’en-tête utilise l’ordre de tri pour dessiner une flèche de tri qui pointe vers le haut ou vers le bas.