Partager via


Structure NMCUSTOMDRAW (commctrl.h)

Contient des informations spécifiques à un code de notification NM_CUSTOMDRAW .

Syntaxe

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

Membres

hdr

Type : NMHDR

Structure NMHDR qui contient des informations sur ce code de notification.

dwDrawStage

Type : DWORD

Étape de dessin actuelle. Il s’agit de l’une des valeurs suivantes.

Valeur Signification
Valeurs globales :
CDDS_POSTERASE
Une fois le cycle d’effacement terminé.
CDDS_POSTPAINT
Une fois le cycle de peinture terminé.
CDDS_PREERASE
Avant que le cycle d’effacement ne commence.
CDDS_PREPAINT
Avant le début du cycle de peinture.
Valeurs spécifiques à l’élément :
CDDS_ITEM
Indique que les membres dwItemSpec, uItemState et lItemlParam sont valides.
CDDS_ITEMPOSTERASE
Une fois qu’un élément a été effacé.
CDDS_ITEMPOSTPAINT
Une fois qu’un élément a été dessiné.
CDDS_ITEMPREERASE
Avant l’effacement d’un élément.
CDDS_ITEMPREPAINT
Avant qu’un élément ne soit dessiné.
CDDS_SUBITEM
Indicateur combiné avec CDDS_ITEMPREPAINT ou CDDS_ITEMPOSTPAINT si un sous-élément est dessiné. Ce paramètre ne sera défini que si CDRF_NOTIFYITEMDRAW est retourné par CDDS_PREPAINT.

hdc

Type : HDC

Handle du contexte d’appareil du contrôle. Utilisez ce HDC pour effectuer des fonctions GDI.

rc

Type : RECT

Structure RECT qui décrit le rectangle englobant de la zone dessinée. Ce membre est initialisé uniquement par la notification CDDS_ITEMPREPAINT. Version 5.80. Ce membre est également initialisé par la notification CDDS_PREPAINT.

dwItemSpec

Type : DWORD_PTR

Numéro d’élément. Ce qui est contenu dans ce membre dépend du type de contrôle qui envoie la notification. Consultez la référence de notification NM_CUSTOMDRAW pour le contrôle spécifique afin de déterminer ce qui, le cas échéant, est contenu dans ce membre.

uItemState

Type : UINT

État actuel de l’élément. Cette valeur est une combinaison des indicateurs suivants.

Valeur Signification
CDIS_CHECKED
L'élément est activé.
CDIS_DEFAULT
L'élément est dans son état par défaut.
CDIS_DISABLED
L’élément est désactivé.
CDIS_FOCUS
L’élément est en focus.
CDIS_GRAYED
L'élément est grisé.
CDIS_HOT
L’élément se trouve actuellement sous le pointeur (« chaud »).
CDIS_INDETERMINATE
L'élément est dans un état indéterminé.
CDIS_MARKED
L'élément est marqué. La signification de cela est déterminée par l’implémentation.
CDIS_SELECTED
L'élément est sélectionné.
Note Cet indicateur ne fonctionne pas correctement pour les contrôles d’affichage de liste dessinés par le propriétaire qui ont le style LVS_SHOWSELALWAYS . Pour ces contrôles, vous pouvez déterminer si un élément est sélectionné en utilisant LVM_GETITEMSTATE (ou ListView_GetItemState) et en vérifiant l’indicateur LVIS_SELECTED .
 
CDIS_SHOWKEYBOARDCUES

Version 6.0.L’élément affiche ses signaux clavier.

Notez que Comctl32 version 6 n’est pas redistribuable. systèmes d’exploitation. Pour utiliser Comctl32.dll version 6, spécifiez-la dans le manifeste. Pour plus d’informations sur les manifestes, consultez Activation des styles visuels.

CDIS_NEARHOT
L’élément fait partie d’un contrôle qui se trouve actuellement sous le pointeur de la souris (« chaud »), mais l’élément n’est pas « chaud » lui-même. La signification de cela est déterminée par l’implémentation.
CDIS_OTHERSIDEHOT
L’élément fait partie d’un bouton partagé qui se trouve actuellement sous le pointeur de la souris (« chaud »), mais l’élément n’est pas « chaud » lui-même. La signification de cela est déterminée par l’implémentation.
CDIS_DROPHILITED
L’élément est actuellement la cible de déplacement d’une opération de glisser-déplacer.

lItemlParam

Type : LPARAM

Données d’élément définies par l’application.

Remarques

La valeur retournée par votre application dépend de la phase de dessin actuelle. Le membre dwDrawStage de la structure NMCUSTOMDRAW associée contient une valeur qui spécifie la phase de dessin. Lorsque le membre dwDrawStage est égal à CDDS_PREPAINT et CDDS_PREERASE, certains contrôles envoient d’abord le message CDDS_PREERASE et s’attendent à ce que la valeur de retour indique quels messages suivants seront envoyés. Pour obtenir un exemple de code illustrant les états et les étapes de dessin, consultez Personnalisation de l’apparence d’un contrôle à l’aide d’un dessin personnalisé.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête commctrl.h