Ownerdrawn-Menüs und die WM_DRAWITEM Nachricht

Wenn das Element gezeichnet werden muss (beispielsweise, wenn es zum ersten Mal angezeigt wird oder wenn der Benutzer auswählt), sendet das System die WM_DRAWITEM Nachricht an die Fensterprozedur des Besitzerfensters für das Menü. Diese Nachricht enthält einen Zeiger auf eine DRAWITEMSTRUCT -Struktur, die enthält Informationen über das Element, einschließlich die Elementdaten, die eine Anwendung zugewiesen haben kann. Darüber hinaus enthält DRAWITEMSTRUCT Flags, die angeben den Zustand des Elements (z. B. ob es deaktiviert oder aktiviert ist) sowie ein umschließendes Rechteck und einen Gerätekontext, den die Anwendung verwendet, um das Element zu zeichnen.

Eine Anwendung muss Folgendes beim Verarbeiten der WM_DRAWITEM Nachricht:

  1. Bestimmen Sie den Typ der Zeichnung, die notwendig ist. Überprüfen Sie hierzu das ItemAction Mitglied der DRAWITEMSTRUCT -Struktur.
  2. Ziehen Sie das Menüelement entsprechend, mit dem umgebenden Rechteck und Gerät Kontext gewonnen aus der DRAWITEMSTRUCT -Struktur. Die Anwendung muss nur innerhalb des umschließenden Rechtecks zeichnen. Aus Leistungsgründen ist das System nicht Teile des Bildes clip, die außerhalb des Rechtecks gezeichnet werden.
  3. Wiederherstellen Sie alle GDI-Objekte für das Menüelement Gerätekontext ausgewählt.

Wenn der Benutzer das Menüelement auswählt, wird das System setzt das ItemAction Mitglied der DRAWITEMSTRUCT -Struktur auf den ODA_SELECT-Wert und legt den Wert der ODS_SELECTED in der ItemState -Member. Dies ist eine Anwendung Cue neu zeichnen das Menüelement an, dass es aktiviert ist.

Index