Partager via


structure de DRAWITEMSTRUCT

La structure de DRAWITEMSTRUCT fournit des informations que la fenêtre propriétaire doit avoir pour déterminer comment faire 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 de ODT_BUTTON

    • Fenêtre de liste déroulante owner-drawn de ODT_COMBOBOX .

    • Zone de liste owner-drawn de ODT_LISTBOX

    • Menu owner-drawn deODT_MENU

    • Contrôle list VIEW de ODT_LISTVIEW

    • Contrôle statique owner-drawn deODT_STATIC

    • ODT_TAB Contrôle Tab

  • CtlID
    L'ID de contrôle pour une fenêtre de liste déroulante, une zone de liste, ou un bouton. Ce membre n'est pas utilisé pour le menu.

  • itemID
    L'ID de l'élément de menu pour un menu ou 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, le membre est une valeur négative, qui permet à l'application de tracer uniquement le rectangle de focus aux coordonnées spécifiées par le membre de rcItem bien qu'il n'existe aucun élément dans le contrôle. L'utilisateur peut être désigné si la zone de liste ou la zone de liste déroulante est active d'entrée. La mise en place des bits du 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 l'action de dessin requise. Ceci sera l'un ou plus des bits suivants:

    • ODA_DRAWENTIRE cette valeur est définie lorsque le contrôle entier a besoin d'être dessiné.

    • ODA_FOCUS cette valeur est définie lorsque le contrôle emporte ou perd le focus d'entrée. Le membre de itemState doit être activé pour déterminer si le contrôle a le focus.

    • ODA_SELECT ce bit est défini uniquement lorsque l'état de sélection a changé. Le membre de 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 application du dessin actuel. Autrement dit, si un élément de menu doit être grisé, l'indicateur ODS_GRAYED de l'état sera défini. Les indicateurs d'état sont les suivants :

    • ODS_CHECKED ce bit est placé si l'élément de menu doit être activé. Ce bit est utilisé uniquement dans le menu.

    • ODS_DISABLED ce bit est placé si l'élément doit être dessiné désactivé.

    • ODS_FOCUS ce bit est placé si l'élément est a le focus d'entrée.

    • ODS_GRAYED ce bit est placé si l'élément doit être grisé. Ce bit est utilisé uniquement dans le menu.

    • ODS_SELECTED cet bit est activé si l'état de l'élément est sélectionné.

    • ODS_COMBOBOXEDIT le dessin prend place 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 la poignée de contrôle de la fenêtre de des zones de liste déroulante, des zones de liste, et des boutons. Spécifie le descripteur du menu (HMENU) qui contient l'élément pour les menus.

  • hDC
    Identifie le contexte de périphérique. Ce contexte de périphérique doit être utilisé pour effectuer des opérations de dessin du contrôle.

  • rcItem
    Un rectangle dans le contexte de périphérique spécifié par le membre d'hDC qui définit les limites du contrôle à ajouter. Windows fait coïncider automatiquement n'importe quoi que le propriétaire dessine dans le contexte de périphérique pour les zones de liste déroulante, les zones de liste, et les boutons, mais il ne fait coïncider pas les éléments de menu. Lors du traçage des éléments de menu, le propriétaire ne doit pas dessiner à l'extérieur des limites du rectangle défini par le membre rcItem.

  • itemData
    Pour une zone de liste déroulante ou une zone de liste, ce membre contient la valeur qui a été transmise à la zone de liste par un des éléments suivants :

    Pour un projet, ce membre contient la valeur qui a été transmise 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 vers la structure en tant que paramètre lParam du message de WM_DRAWITEM.

Configuration requise

En-tête : winuser.h

Voir aussi

Référence

CWnd::OnDrawItem

Autres ressources

Structures, les styles, rappels, et les tables des messages