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

CObject

CCmdTarget

CWnd

CHeaderCtrl

CMFCHeaderCtrl

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.

Voir aussi

Graphique hiérarchique
Classes
CMFCListCtrl, classe