Contrôle d’en-tête

Cette section contient des informations sur les éléments de programmation utilisés avec les contrôles d’en-tête.

Vues d'ensemble

Rubrique Contenu
À propos des contrôles d’en-tête Un contrôle d’en-tête est une fenêtre qui est généralement positionnée au-dessus des colonnes de texte ou de nombres. Il contient un titre pour chaque colonne et peut être divisé en parties.
Utilisation des contrôles d’en-tête Cette rubrique fournit des détails d’implémentation et des exemples de code pour les contrôles d’en-tête.

Macros

Rubrique Contenu
Header_ClearAllFilters Efface tous les filtres d’un contrôle d’en-tête donné. Vous pouvez utiliser cette macro ou envoyer le message HDM_CLEARFILTER explicitement.
Header_ClearFilter Efface le filtre pour un contrôle d’en-tête donné. Vous pouvez utiliser cette macro ou envoyer le message HDM_CLEARFILTER explicitement.
Header_CreateDragImage Crée une version transparente d’une image d’élément dans un contrôle d’en-tête existant. Vous pouvez utiliser cette macro ou envoyer le message HDM_CREATEDRAGIMAGE explicitement.
Header_DeleteItem Supprime un élément d’un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_DELETEITEM explicitement.
Header_EditFilter Déplace le focus d’entrée vers la zone d’édition lorsqu’un bouton de filtre a le focus.
Header_GetBitmapMargin Obtient la largeur de la marge (en pixels) d’une bitmap dans un contrôle d’en-tête existant. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETBITMAPMARGIN explicitement.
Header_GetFocusedItem Obtient l’élément dans un contrôle d’en-tête qui a le focus. Utilisez cette macro ou envoyez le message HDM_GETFOCUSEDITEM explicitement.
Header_GetImageList Obtient le handle de la liste d’images qui a été définie pour un contrôle d’en-tête existant. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETIMAGELIST explicitement.
Header_GetItem Obtient des informations sur un élément dans un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETITEM explicitement.
Header_GetItemCount Obtient le nombre d’éléments d’un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETITEMCOUNT explicitement.
Header_GetItemDropDownRect Obtient les coordonnées du bouton déroulant d’un élément spécifié dans un contrôle d’en-tête. Le contrôle d’en-tête doit être de type HDF_SPLITBUTTON. Utilisez cette macro ou envoyez explicitement le message HDM_GETITEMDROPDOWNRECT .
Header_GetItemRect Obtient le rectangle englobant pour un élément donné dans un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETITEMRECT explicitement.
Header_GetOrderArray Obtient l’ordre actuel des éléments de gauche à droite dans un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETORDERARRAY explicitement.
Header_GetOverflowRect Obtient les coordonnées de la zone de dépassement de liste déroulante pour un contrôle d’en-tête spécifié. Le contrôle d’en-tête doit être de type HDF_SPLITBUTTON. Utilisez cette macro ou envoyez le message HDM_GETOVERFLOWRECT explicitement.
Header_GetStateImageList Obtient le handle de la liste d’images qui a été défini pour un état de contrôle d’en-tête existant.
Header_GetUnicodeFormat Obtient l’indicateur de format de caractères Unicode pour le contrôle. Vous pouvez utiliser cette macro ou envoyer le message HDM_GETUNICODEFORMAT explicitement.
Header_InsertItem Insère un nouvel élément dans un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_INSERTITEM explicitement.
Header_Layout Récupère la taille et la position correctes d’un contrôle d’en-tête dans la fenêtre parente. Vous pouvez utiliser cette macro ou envoyer le message HDM_LAYOUT explicitement.
Header_OrderToIndex Récupère une valeur d’index pour un élément en fonction de son ordre dans le contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_ORDERTOINDEX explicitement.
Header_SetBitmapMargin Définit la largeur de la marge d’une bitmap dans un contrôle d’en-tête existant. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETBITMAPMARGIN explicitement.
Header_SetFilterChangeTimeout Définit l’intervalle de délai entre le moment où une modification a lieu dans les attributs de filtre et la publication d’une notification HDN_FILTERCHANGE . Vous pouvez utiliser cette macro ou envoyer le message HDM_SETFILTERCHANGETIMEOUT explicitement.
Header_SetFocusedItem Définit le focus sur un élément spécifié dans un contrôle d’en-tête. Utilisez cette macro ou envoyez explicitement le message HDM_SETFOCUSEDITEM .
Header_SetHotDivider Change la couleur d’un séparateur entre les éléments d’en-tête pour indiquer la destination d’une opération de glisser-déplacer externe. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETHOTDIVIDER explicitement.
Header_SetImageList Affecte une liste d’images à un contrôle d’en-tête existant. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETIMAGELIST explicitement.
Header_SetItem Définit les attributs de l’élément spécifié dans un contrôle d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETITEM explicitement.
Header_SetOrderArray Définit l’ordre de gauche à droite des éléments d’en-tête. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETORDERARRAY explicitement.
Header_SetStateImageList Affecte une liste d’images à un état de contrôle d’en-tête existant.
Header_SetUnicodeFormat Définit l’indicateur de format de caractères UNICODE pour le contrôle. Ce message vous permet de modifier le jeu de caractères utilisé par le contrôle au moment de l’exécution plutôt que d’avoir à recréer le contrôle. Vous pouvez utiliser cette macro ou envoyer le message HDM_SETUNICODEFORMAT explicitement.

Messages

Rubrique Contenu
HDM_CLEARFILTER Efface le filtre pour un contrôle d’en-tête donné. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_ClearFilter .
HDM_CREATEDRAGIMAGE Crée une version semi-transparente de l’image d’un élément à utiliser comme image de glissement. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_CreateDragImage .
HDM_DELETEITEM Supprime un élément d’un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_DeleteItem .
HDM_EDITFILTER Déplace le focus d’entrée vers la zone d’édition lorsqu’un bouton de filtre a le focus.
HDM_GETBITMAPMARGIN Obtient la largeur de la marge bitmap pour un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetBitmapMargin .
HDM_GETFOCUSEDITEM Obtient l’élément dans un contrôle d’en-tête qui a le focus. Envoyez ce message explicitement ou à l’aide de la macro Header_GetFocusedItem . Une fenêtre reçoit ce message via sa fonction WindowProc.
HDM_GETIMAGELIST Obtient le handle de la liste d’images qui a été définie pour un contrôle d’en-tête existant. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetImageList ou Header_GetStateImageList .
HDM_GETITEM Obtient des informations sur un élément dans un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetItem .
HDM_GETITEMCOUNT Obtient le nombre d’éléments d’un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetItemCount .
HDM_GETITEMDROPDOWNRECT Obtient le rectangle englobant du bouton fractionné pour un élément d’en-tête avec un style HDF_SPLITBUTTON. Envoyez ce message explicitement ou à l’aide de la macroHeader_GetItemDropDownRect.
HDM_GETITEMRECT Obtient le rectangle englobant pour un élément donné dans un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetItemRect .
HDM_GETORDERARRAY Obtient l’ordre actuel des éléments de gauche à droite dans un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetOrderArray .
HDM_GETOVERFLOWRECT Obtient le rectangle englobant du bouton de dépassement de capacité lorsque le style HDS_OVERFLOW est défini sur le contrôle d’en-tête et que le bouton de dépassement est visible. Envoyez ce message explicitement ou à l’aide de la macroHeader_GetOverflowRect.
HDM_GETUNICODEFORMAT Obtient l’indicateur de format de caractères Unicode pour le contrôle. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_GetUnicodeFormat .
HDM_HITTEST Teste un point pour déterminer quel élément d’en-tête, le cas échéant, se trouve au point spécifié.
HDM_INSERTITEM Insère un nouvel élément dans un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_InsertItem .
HDM_LAYOUT Récupère les informations utilisées pour définir la taille et la position du contrôle d’en-tête dans le rectangle cible de la fenêtre parente. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_Layout .
HDM_ORDERTOINDEX Récupère une valeur d’index pour un élément en fonction de son ordre dans le contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_OrderToIndex .
HDM_SETBITMAPMARGIN Définit la largeur de la marge, spécifiée en pixels, d’une bitmap dans un contrôle d’en-tête existant. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetBitmapMargin .
HDM_SETFILTERCHANGETIMEOUT Définit l’intervalle de délai entre le moment où une modification a lieu dans les attributs de filtre et la publication d’une notification HDN_FILTERCHANGE . Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetFilterChangeTimeout .
HDM_SETFOCUSEDITEM Définit le focus sur un élément spécifié dans un contrôle d’en-tête. Envoyez ce message explicitement ou à l’aide de la macro Header_SetFocusedItem .
HDM_SETHOTDIVIDER Change la couleur d’un séparateur entre les éléments d’en-tête pour indiquer la destination d’une opération de glisser-déplacer externe. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetHotDivider .
HDM_SETIMAGELIST Affecte une liste d’images à un contrôle d’en-tête existant. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetImageList ou Header_SetStateImageList .
HDM_SETITEM Définit les attributs de l’élément spécifié dans un contrôle d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetItem .
HDM_SETORDERARRAY Définit l’ordre de gauche à droite des éléments d’en-tête. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetOrderArray .
HDM_SETUNICODEFORMAT Définit l’indicateur de format de caractères UNICODE pour le contrôle. Ce message vous permet de modifier le jeu de caractères utilisé par le contrôle au moment de l’exécution plutôt que d’avoir à recréer le contrôle. Vous pouvez envoyer ce message explicitement ou utiliser la macro Header_SetUnicodeFormat .
HDM_TRANSLATEACCELERATOR Non implémenté.

Notifications

Rubrique Contenu
HDN_BEGINDRAG Envoyé par un contrôle d’en-tête lorsqu’une opération de glissement a commencé sur l’un de ses éléments. Ce code de notification est envoyé uniquement par les contrôles d’en-tête qui sont définis sur le style HDS_DRAGDROP . Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_BEGINFILTEREDIT Avertit la fenêtre parente d’un contrôle d’en-tête qu’une modification de filtre a commencé. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_BEGINTRACK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a commencé à faire glisser un séparateur dans le contrôle (autrement dit, l’utilisateur a appuyé sur le bouton gauche de la souris tandis que le curseur de la souris se trouve sur un séparateur dans le contrôle d’en-tête). Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_DIVIDERDBLCLICK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a double-cliqué sur la zone de diviseur du contrôle. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_DROPDOWN Envoyé par un contrôle d’en-tête à son parent lorsque la flèche déroulante du contrôle d’en-tête est cliquée. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ENDDRAG Envoyé par un contrôle d’en-tête lorsqu’une opération de glissement s’est terminée sur l’un de ses éléments. Ce code de notification est envoyé sous forme de message WM_NOTIFY . Seuls les contrôles d’en-tête définis sur le style HDS_DRAGDROP envoient cette notification.
HDN_ENDFILTEREDIT Avertit la fenêtre parente d’un contrôle d’en-tête qu’une modification de filtre est terminée. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ENDTRACK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a terminé de faire glisser un séparateur. Ce code de notification envoyé sous la forme d’un message WM_NOTIFY .
HDN_FILTERBTNCLICK Avertit la fenêtre parente du contrôle d’en-tête lorsque vous cliquez sur le bouton de filtre ou en réponse à un message HDM_SETITEM .
HDN_FILTERCHANGE Avertit la fenêtre parente du contrôle d’en-tête que les attributs d’un filtre de contrôle d’en-tête sont modifiés ou modifiés.
HDN_GETDISPINFO Envoyé au propriétaire d’un contrôle d’en-tête lorsque le contrôle a besoin d’informations sur un élément d’en-tête de rappel. Ce code de notification est envoyé sous forme de message WM_NOTIFY .
HDN_ITEMCHANGED Avertit la fenêtre parente d’un contrôle d’en-tête que les attributs d’un élément d’en-tête ont changé. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ITEMCHANGING Avertit la fenêtre parente d’un contrôle d’en-tête que les attributs d’un élément d’en-tête sont sur le point de changer. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ITEMCLICK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a cliqué sur le contrôle. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ITEMDBLCLICK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a double-cliqué sur le contrôle. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY . Seuls les contrôles d’en-tête qui sont définis sur le style HDS_BUTTONS envoient cette notification.
HDN_ITEMKEYDOWN Avertit la fenêtre parente d’un contrôle d’en-tête qu’une touche a été enfoncée avec un élément sélectionné. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_ITEMSTATEICONCLICK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur a cliqué sur l’icône d’état d’un élément.
HDN_OVERFLOWCLICK Envoyé par un contrôle d’en-tête à son parent lorsque vous cliquez sur le bouton de dépassement de l’en-tête. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
HDN_TRACK Avertit la fenêtre parente d’un contrôle d’en-tête que l’utilisateur fait glisser un séparateur dans le contrôle d’en-tête. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
NM_CUSTOMDRAW (en-tête) Envoyé par un contrôle d’en-tête pour informer sa fenêtre parente des opérations de dessin. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
NM_RCLICK (en-tête) Avertit la fenêtre parente d’un contrôle d’arborescence que l’utilisateur a cliqué sur le bouton droit de la souris dans le contrôle. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .
NM_RELEASEDCAPTURE (en-tête) Avertit la fenêtre parente d’un contrôle d’en-tête que le contrôle libère la capture de la souris. Ce code de notification est envoyé sous la forme d’un message WM_NOTIFY .

Constantes

Rubrique Contenu
Styles de contrôle d’en-tête Les contrôles d’en-tête ont un certain nombre de styles, décrits dans cette section, qui déterminent l’apparence et le comportement du contrôle. Vous définissez les styles initiaux lorsque vous créez le contrôle d’en-tête.