DRAWITEMSTRUCT, structure
La structure d' DRAWITEMSTRUCT fournit des informations que la fenêtre propriétaire doit avoir à déterminer comment peindre un contrôle ou un élément de menu owner-drawn.
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
DWORD itemData;
} DRAWITEMSTRUCT;
Paramètres
CtlType
Type de contrôle.Les valeurs pour les types de contrôle sont les suivantes :Bouton owner-drawn d'ODT_BUTTON
Zone de liste déroulante owner-drawn d'ODT_COMBOBOX
Zone de liste owner-drawn d'ODT_LISTBOX
Menu owner-drawn d'ODT_MENU
Contrôle liste view d'ODT_LISTVIEW
Contrôle statique owner-drawn d'ODT_STATIC
Contrôle onglet d'ODT_TAB
CtlID
l'ID du contrôle pour une zone de liste déroulante, une zone de liste, ou un bouton.Ce membre n'est pas utilisé pour un menu.itemID
L'ID d'élément de menu pour un 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 est une valeur négative, qui permet à l'application de dessiner uniquement le rectangle de focus à des coordonnées spécifiées par le membre de rcItem bien qu'il n'y a aucun élément dans le contrôle.L'utilisateur peut être affiché si la zone de liste ou la zone de liste déroulante a le focus d'entrée.Le paramètre de bits dans le membre d' itemAction détermine si le rectangle doit être dessiné comme si la zone de liste ou la zone de liste déroulante a le focus d'entrée.itemAction
Définit le dessin requis.Il s'agit d'un ou plusieurs des bits suivants :ODA_DRAWENTIRE ce bit est défini lorsque le contrôle entier doit être dessiné.
ODA_FOCUS ce bit est défini lorsque le contrôle a gagné ou perd le focus d'entrée.Le membre d' itemState doit être activé pour déterminer si le contrôle a le focus.
ODA_SELECT ce bit est défini lorsque seul l'état de sélection a changé.Le membre d' itemState doit être activé pour déterminer le nouvel état de sélection.
itemState
Spécifie l'état visuel de l'élément après le dessin actuel ait lieu.Autrement dit, si un élément de menu doit être grisé, la balise ODS_GRAYED d'état doit être définie.Les balises d'état sont les suivantes :ODS_CHECKED ce bit est défini si l'élément de menu doit être activé.Ce bit est utilisé uniquement dans un menu.
ODS_DISABLED ce bit est défini si l'élément doit être dessiné est désactivé.
ODS_FOCUS ce bit est défini si l'élément a le focus d'entrée.
ODS_GRAYED ce bit est défini si l'élément doit être grisé.Ce bit est utilisé uniquement dans un menu.
ODS_SELECTED ce bit est défini si l'état de l'élément est sélectionné.
ODS_COMBOBOXEDIT le dessin a lieu dans le domaine de sélection (contrôle d'édition) d'une zone de liste déroulante d'ownerdrawn.
ODS_DEFAULT l'élément est l'élément par défaut.
hwndItem
Spécifie le handle de fenêtre du contrôle pour les zones de liste déroulante, des zones de liste, les boutons et.Spécifie le handle du menu (HMENU) qui contient l'élément pour les menus.hDC
Identifie un contexte de périphérique.Ce contexte de périphérique doit être utilisé pour exécuter des opérations de dessin sur le contrôle.rcItem
Un rectangle dans le contexte de périphérique spécifié par le membre d' hDC qui définissent les limites du contrôle est dessiné.Les fenêtres découpe automatiquement tout ce que le propriétaire dessine dans le contexte de périphérique pour les zones de liste déroulante, des zones de liste, les boutons et, mais il ne découpe pas des éléments de menu.Lorsque vous dessinez des éléments de menu, le propriétaire ne doit pas dessiner en dehors de les limites du rectangle défini par le membre de rcItem .itemData
Pour une zone de liste déroulante ou une zone de liste, ce membre contient la valeur passée à la zone de liste par un des éléments suivants :Pour un menu, ce membre contient la valeur passée au menu par un des éléments suivants :
Notes
La fenêtre propriétaire du contrôle ou de l'élément de menu owner-drawn reçoit un pointeur à cette structure comme paramètre d' lParam du message d' WM_DRAWITEM .
Configuration requise
Header: winuser.h