Das Ownerdrawn-Flag

Sie können kein Ownerdrawn-Menüelement in der Anwendung Ressource-Datei definieren. Stattdessen muss ein neues Menüelement erstellen oder ändern eine vorhandene mit dem Flag MFT_OWNERDRAW Menü.

Sie können mithilfe der InsertMenuItem oder SetMenuItemInfo Funktion, um ein Ownerdrawn-Menüelement angeben. Verwenden Sie InsertMenuItem ein neues Menüelement an der angegebenen Position in einer Menüleiste oder im Menü Einfügen. Verwenden Sie SetMenuItemInfo , um den Inhalt eines Menüs ändern.

Wenn Sie diese beiden Funktionen aufrufen, müssen Sie angeben die Adresse einer MENUITEMINFO Struktur, geben die Eigenschaften der neuen Menübefehl oder die Eigenschaften, die Sie für eine vorhandene Menüelement ändern möchten. Um ein Element zu machen angeben ein Ownerdrawn-Element, den MIIM_TYPE-Wert für der fMask -Member und der MFT_OWNERDRAW-Wert für den fType -member.

Durch Festlegen der entsprechenden Member der Struktur MENUITEMINFO , können Sie einen anwendungsdefinierter Wert, der Elementdatengenannt wird, mit jedem Menüelement zuordnen. Hierzu geben Sie den MIIM_DATA Wert der fMask -Member und der Anwendung definierte Wert für den DwItemData -member.

Elementdaten können Sie mit jeder Art von Menü-Eintrag, aber es ist besonders nützlich für die ownerdrawn-Elemente. Z. B. genommen Sie an, eine Struktur enthält Informationen verwendet, um ein Menüelement zu zeichnen. Eine Anwendung könnte die Elementdaten für ein Menüelement verwenden, um einen Zeiger auf die Struktur zu speichern. Die Elementdaten werden an das Menü Besitzerfenster mit den WM_MEASUREITEM und WM_DRAWITEM -Meldungen gesendet. Die Elementdaten für ein Menü jederzeit abzurufen, verwenden Sie die Funktion GetMenuItemInfo.

Für frühere Versionen des Systems geschriebene Anwendungen können weiterhin AppendMenu, InsertMenuoder ModifyMenu ein Ownerdrawn-Menüelement zuweisen das MF_OWNERDRAW-Flag aufrufen.

Wenn Sie diese drei Funktionen aufrufen, können Sie einen 32-Bit-Wert als Parameter LpNewItem übergeben. Dieser Wert kann alle Informationen darstellen, das für Ihre Anwendung sinnvoll ist, und werden, die für Ihre Anwendung verfügbar, wenn das Element angezeigt werden soll. Zum Beispiel könnte der Wert einen Zeiger auf eine Struktur enthalten; die Struktur enthält wiederum eine Textzeichenfolge und das Handle für eine logische Schriftart, die die Anwendung verwenden wird, um die Zeichenfolge zu zeichnen.

Index