STRUCTURE DRAWITEMSTRUCT (winuser.h)

Fournit des informations que la fenêtre propriétaire utilise pour déterminer comment peindre un contrôle ou un élément de menu dessiné par le propriétaire. La fenêtre propriétaire du contrôle ou de l’élément de menu dessiné par le propriétaire reçoit un pointeur vers cette structure en tant que paramètre lParam du message WM_DRAWITEM .

Syntaxe

typedef struct tagDRAWITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemAction;
  UINT      itemState;
  HWND      hwndItem;
  HDC       hDC;
  RECT      rcItem;
  ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

Membres

CtlType

Type : UINT

Type du contrôle. Ce membre peut être l’une des valeurs suivantes. Consultez la section Notes.

Valeur Signification
ODT_BUTTON
Bouton dessiné par le propriétaire
ODT_COMBOBOX
Zone de liste modifiable dessinée par le propriétaire
ODT_LISTBOX
Zone de liste dessinée par le propriétaire
ODT_LISTVIEW
Contrôle d’affichage de liste
ODT_MENU
Élément de menu dessiné par le propriétaire
ODT_STATIC
Contrôle statique dessiné par le propriétaire
ODT_TAB
Contrôle Tab

CtlID

Type : UINT

Identificateur de la zone de liste modifiable, de la zone de liste, du bouton ou du contrôle statique. Ce membre n’est pas utilisé pour un élément de menu.

itemID

Type : UINT

Identificateur d’élément de menu pour un élément de menu ou l’index de l’élément dans une zone de liste ou une zone de liste déroulante. Pour une zone de liste ou une zone de liste déroulante vide, ce membre peut être -1. Cela permet à l’application de dessiner uniquement le rectangle de focus aux coordonnées spécifiées par le membre rcItem , même s’il n’y a aucun élément dans le contrôle. Cela indique à l’utilisateur si la zone de liste ou la zone de liste déroulante a le focus. La façon dont les bits sont définis dans le membre itemAction détermine si le rectangle doit être dessiné comme si la zone de liste ou la zone de liste modifiable avait le focus.

itemAction

Type : UINT

Action de dessin requise. Ce membre peut être une ou plusieurs des valeurs.

Valeur Signification
ODA_DRAWENTIRE
Le contrôle entier doit être dessiné.
ODA_FOCUS
Le contrôle a perdu ou gagné le focus clavier. Le membre itemState doit être vérifié pour déterminer si le contrôle a le focus.
ODA_SELECT
Le status de sélection a changé. Le membre itemState doit être vérifié pour déterminer le nouvel état de sélection.

itemState

Type : UINT

État visuel de l'élément après application du dessin actuel. Ce membre peut être une combinaison des valeurs indiquées dans le tableau suivant.

Valeur Signification
ODS_CHECKED
L’élément de menu doit être vérifié. Ce bit est utilisé uniquement dans un menu.
ODS_COMBOBOXEDIT
Le dessin a lieu dans le champ de sélection (contrôle d’édition) d’une zone de liste déroulante dessinée par le propriétaire.
ODS_DEFAULT
L’élément est l’élément par défaut.
ODS_DISABLED
L’élément doit être dessiné comme désactivé.
ODS_FOCUS
L’élément a le focus clavier.
ODS_GRAYED
L’élément doit être grisé. Ce bit est utilisé uniquement dans un menu.
ODS_HOTLIGHT
L’élément fait l’objet d’un suivi à chaud, c’est-à-dire qu’il est mis en surbrillance lorsque la souris se trouve sur l’élément.
ODS_INACTIVE
L’élément est inactif et la fenêtre associée au menu est inactive.
ODS_NOACCEL
Le contrôle est dessiné sans les signaux d’accélérateur du clavier.
ODS_NOFOCUSRECT
Le contrôle est dessiné sans indicateurs de focus.
ODS_SELECTED
Le status de l’élément de menu est sélectionné.

hwndItem

Type : HWND

Handle du contrôle pour les zones de liste déroulante, les zones de liste, les boutons et les contrôles statiques. Pour les menus, ce membre est un handle du menu qui contient l’élément.

hDC

Type : HDC

Handle vers un contexte de périphérique ; ce contexte de périphérique doit être utilisé lors de l'exécution des opérations de dessin sur le contrôle.

rcItem

Type : RECT

Rectangle qui définit les limites du contrôle à dessiner. Ce rectangle se trouve dans le contexte de l’appareil spécifié par le membre hDC . Le système extrait automatiquement tout ce que la fenêtre propriétaire dessine dans le contexte de l’appareil pour les zones de liste déroulante, les zones de liste et les boutons, mais ne coupe pas les éléments de menu. Lors du dessin d’éléments de menu, la fenêtre propriétaire ne doit pas dessiner en dehors des limites du rectangle défini par le membre rcItem .

itemData

Type : ULONG_PTR

Valeur définie par l’application associée à l’élément de menu. Pour un contrôle, ce paramètre spécifie la valeur affectée en dernier à la zone de liste ou à la zone de liste déroulante par le message LB_SETITEMDATA ou CB_SETITEMDATA . Si la zone de liste ou la zone de liste déroulante a le style LBS_HASSTRINGS ou CBS_HASSTRINGS , cette valeur est initialement zéro. Sinon, cette valeur est initialement la valeur qui a été passée à la zone de liste ou à la zone de liste déroulante dans le paramètre lParam de l’un des messages suivants :

Si CtlType est ODT_BUTTON ou ODT_STATIC, itemData est égal à zéro.

Remarques

Certains types de contrôle, tels que status barres, ne définissent pas la valeur de CtlType.

Configuration requise

Condition requise Valeur
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 winuser.h (inclure Windows.h)

Voir aussi

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

Référence

WM_DRAWITEM