Nachrichten mit Menüs verwendet

Das System meldet Menü-bezogene Aktivitäten durch Senden von Nachrichten an die Fensterprozedur des Fensters, das das Menü besitzt. Wenn der Benutzer Elemente auf der Menüleiste wählt oder die rechten Maustaste ein Kontextmenü anzeigen klickt, sendet das System eine Reihe von Nachrichten.

Wenn der Benutzer ein Element in der Menüleiste aktiviert, erhält das Besitzerfenster zuerst eine WM_SYSCOMMAND -Meldung. Diese Nachricht enthält ein Flag, das angibt, ob der Benutzer im Menü aktiviert mithilfe der Tastatur (SC_KEYMENU) oder der Maus (SC_MOUSEMENU). Weitere Informationen finden Sie unter Zugriff über die Tastatur auf Menüs.

Weiter, bevor alle Menüs angezeigt, das System sendet die WM_INITMENU -Nachricht an die Fensterprozedur so, dass eine Anwendung die Menüs ändern kann, bevor der Benutzer sie sieht. Das System sendet die WM_INITMENU-Nachricht nur einmal pro Aktivierung.

Wenn der Benutzer zeigt auf ein Menüelement, das ein Untermenü öffnen, das System sendet dem Besitzerfenster die Nachricht WM_INITMENUPOPUP vor dem Anzeigen des Untermenüs. Diese Meldung gibt der Anwendung Gelegenheit, das Untermenü ändern, bevor es angezeigt wird.

Jedes Mal, wenn der Benutzer von einem Element zum anderen bewegt die Hervorhebung sendet das System eine WM_MENUSELECT Nachricht an die Fensterprozedur des Besitzerfensters für das Menü. Diese Nachricht identifiziert den aktuell ausgewählten Menüpunkt. Viele Anwendungen bieten einen Bereich am unteren Rand ihrer wichtigsten Windows und diese Nachricht verwenden, um zusätzliche Informationen zu dem ausgewählten Menüelement anzuzeigen.

Wenn der Benutzer einen Befehl Element aus einem Menü auswählt, sendet das System eine WM_COMMAND -Nachricht an die Fensterprozedur. Das niedrige Word des wParam -Parameters die WM_COMMAND-Nachricht enthält den Bezeichner des ausgewählten Elements. Die Fensterprozedur sollte überprüfen Sie den Bezeichner und verarbeitet die Nachricht entsprechend.

Nicht alle Menüs sind durch ein Fenster-Menüleiste zugänglich. Viele Anwendungen anzuzeigen Kontextmenüs, klickt der Benutzer die Rechte Maustaste an einem bestimmten Ort. Solche Anwendungen sollten die WM_CONTEXTMENU -Meldung verarbeiten und Anzeigen eines Kontextmenüs, gegebenenfalls. Wenn eine Anwendung ein Kontextmenü nicht angezeigt wird, sollten sie die WM_CONTEXTMENU-Meldung an die DefWindowProc -Funktion zur Standardverarbeitung übergeben.

Index