Freigeben über


NMCUSTOMDRAW-Struktur (commctrl.h)

Enthält spezifische Informationen für einen NM_CUSTOMDRAW Benachrichtigungscode.

Syntax

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

Member

hdr

Typ: NMHDR

Eine NMHDR-Struktur , die Informationen zu diesem Benachrichtigungscode enthält.

dwDrawStage

Typ: DWORD

Die aktuelle Zeichnungsphase. Dies ist einer der folgenden Werte.

Wert Bedeutung
Globale Werte:
CDDS_POSTERASE
Nach Abschluss des Löschzyklus.
CDDS_POSTPAINT
Nach Abschluss des Malzyklus.
CDDS_PREERASE
Bevor der Löschzyklus beginnt.
CDDS_PREPAINT
Bevor der Malzyklus beginnt.
Elementspezifische Werte:
CDDS_ITEM
Gibt an, dass die Elemente dwItemSpec, uItemState und lItemlParam gültig sind.
CDDS_ITEMPOSTERASE
Nachdem ein Element gelöscht wurde.
CDDS_ITEMPOSTPAINT
Nachdem ein Element gezeichnet wurde.
CDDS_ITEMPREERASE
Bevor ein Element gelöscht wird.
CDDS_ITEMPREPAINT
Bevor ein Element gezeichnet wird.
CDDS_SUBITEM
Flag kombiniert mit CDDS_ITEMPREPAINT oder CDDS_ITEMPOSTPAINT, wenn ein Unterelement gezeichnet wird. Dies wird nur festgelegt, wenn CDRF_NOTIFYITEMDRAW von CDDS_PREPAINT zurückgegeben wird.

hdc

Typ: HDC

Ein Handle für den Gerätekontext des Steuerelements. Verwenden Sie diesen HDC, um GDI-Funktionen auszuführen.

rc

Typ: RECT

Die RECT-Struktur , die das umgebende Rechteck des gezeichneten Bereichs beschreibt. Dieser Member wird nur durch die CDDS_ITEMPREPAINT-Benachrichtigung initialisiert. Version 5.80. Dieser Member wird auch durch die CDDS_PREPAINT-Benachrichtigung initialisiert.

dwItemSpec

Typ: DWORD_PTR

Die Elementnummer. Was in diesem Member enthalten ist, hängt vom Typ des Steuerelements ab, das die Benachrichtigung sendet. In der NM_CUSTOMDRAW Benachrichtigungsreferenz finden Sie informationen zum spezifischen Steuerelement, um zu bestimmen, was in diesem Member enthalten ist.

uItemState

Typ: UINT

Der aktuelle Elementzustand. Dieser Wert ist eine Kombination der folgenden Flags.

Wert Bedeutung
CDIS_CHECKED
Das Element ist aktiviert.
CDIS_DEFAULT
Das Element befindet sich im Standardzustand.
CDIS_DISABLED
Das Element ist deaktiviert.
CDIS_FOCUS
Das Element befindet sich im Fokus.
CDIS_GRAYED
Das Element ist grau unterlegt.
CDIS_HOT
Das Element befindet sich derzeit unter dem Zeiger ("heiß").
CDIS_INDETERMINATE
Das Element befindet sich in einem unbestimmten Zustand.
CDIS_MARKED
Das Element ist markiert. Die Bedeutung wird durch die Implementierung bestimmt.
CDIS_SELECTED
Das Element ist ausgewählt.
Hinweis Dieses Flag funktioniert nicht ordnungsgemäß für steuerelemente mit der vom Besitzer gezeichneten Listenansicht, die die LVS_SHOWSELALWAYS formatieren. Für diese Steuerelemente können Sie bestimmen, ob ein Element ausgewählt wird, indem Sie LVM_GETITEMSTATE (oder ListView_GetItemState) verwenden und nach dem flag LVIS_SELECTED suchen.
 
CDIS_SHOWKEYBOARDCUES

Version 6.0.Das Element zeigt seine Tastaturhinweise an.

Beachten Sie, dass Comctl32 Version 6 nicht verteilbar ist. Betriebssysteme. Um Comctl32.dll Version 6 zu verwenden, geben Sie sie im Manifest an. Weitere Informationen zu Manifesten finden Sie unter Aktivieren von visuellen Formatvorlagen.

CDIS_NEARHOT
Das Element ist Teil eines Steuerelements, das sich derzeit unter dem Mauszeiger befindet ("heiß"), aber das Element ist selbst nicht "heiß". Die Bedeutung wird durch die Implementierung bestimmt.
CDIS_OTHERSIDEHOT
Das Element ist Teil eines Splitbuttons, das sich derzeit unter dem Mauszeiger befindet ("heiß"), aber das Element ist selbst nicht "heiß". Die Bedeutung wird durch die Implementierung bestimmt.
CDIS_DROPHILITED
Das Element ist derzeit das Ablageziel eines Drag-and-Drop-Vorgangs.

lItemlParam

Typ: LPARAM

Anwendungsdefinierte Elementdaten.

Hinweise

Der Wert, den Ihre Anwendung zurückgibt, hängt vom aktuellen Zeichnungsstadium ab. Der dwDrawStage-Member der zugeordneten NMCUSTOMDRAW-Struktur enthält einen Wert, der die Zeichnungsstufe angibt. Wenn der dwDrawStage-Member gleich CDDS_PREPAINT und CDDS_PREERASE ist, senden einige Steuerelemente zuerst die CDDS_PREERASE Nachricht und erwarten, dass der Rückgabewert angibt, welche nachfolgenden Nachrichten gesendet werden. Ein Codebeispiel, das Zustände und Zeichnungsphasen veranschaulicht, finden Sie unter Anpassen der Darstellung eines Steuerelements mithilfe von benutzerdefiniertem Zeichnen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile commctrl.h