Freigeben über


Menu-Element

Definiert ein Menüelement. Dies sind die sechs Arten von Menüs: Kontextmenü, Menü, MenuController, MenuControllerLatched, Symbolleiste und ToolWindowToolbar.

Syntax

<Menu guid="guidMyCommandSet" id="MyCommand" priority="0x100" type="button">
  <Parent>... </Parent>
  <CommandFlag>... </CommandFlag>
  <Strings>... </Strings>
</Menu>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

Attribut BESCHREIBUNG
guid Erforderlich. GUID des GUID/ID-Befehlsbezeichners.
id Erforderlich. ID des GUID/ID-Befehlsbezeichners.
priority Optional. Ein numerischer Wert, der die relative Position eines Menüs in einer Gruppe von Menüs angibt.
toolbarPriorityInBand Optional. Ein numerischer Wert, der die relative Position einer Symbolleiste in einem Band angibt, wenn das Fenster angedockt wird.
Typ Optional. Ein Aufzählungswert, der die Art des Elements angibt.

Wenn sie nicht vorhanden ist, lautet der Standardtyp "Menu".

Kontext
Ein Kontextmenü, das angezeigt wird, wenn ein Benutzer mit der rechten Maustaste auf ein Fenster klickt. Ein Kontextmenü weist die folgenden Merkmale auf:

– Verwendet die Felder "Übergeordnetes Element" und "Priorität " nicht, wenn das Menü als Kontextmenü angezeigt werden soll.
- Kann als Untermenü und auch als Kontextmenü verwendet werden. In diesem Fall werden sowohl die Felder "Gruppen-ID" als auch "Priorität" berücksichtigt.
- Ist nicht immer verfügbar.

Ein Kontextmenü wird nur angezeigt, wenn die folgenden Bedingungen erfüllt sind:

- Das Fenster, in dem es gehostet wird, wird angezeigt.
– Ein Maushandler im VSPackage erkennt einen Rechtsklick auf das Fenster und ruft dann eine Methode auf, die den Befehl behandelt.
- Das Kontextmenü wird angezeigt, indem die ShowContextMenu Methode (der empfohlene Ansatz) oder die ShowContextMenu Methode aufgerufen wird.

Menü
Stellt ein Dropdownmenü bereit. Ein Dropdownmenü weist die folgenden Merkmale auf:

- respektiert die Eltern in ihrer Definition.
– Muss eine übergeordnete Gruppe oder ein CommandPlacement für eine Gruppe haben.
- Kann ein Untermenü in jeder anderen Art von Menü sein.
– Wird automatisch angezeigt, wenn das übergeordnete Menü angezeigt wird.
- Erfordert nicht die Implementierung von VSPackage-Code, damit er angezeigt wird.

MenuController
Stellt ein Dropdownmenü für geteilte Schaltflächen bereit, das in der Regel in Symbolleisten verwendet wird. Ein MenuController-Menü weist die folgenden Merkmale auf:

- Muss in einem anderen Menü über übergeordnetes oder CommandPlacement enthalten sein.
- respektiert die Eltern in ihrer Definition.
- Kann eine beliebige Art von Menü als übergeordnetes Element haben.
– Wird automatisch verfügbar gemacht, wenn das übergeordnete Menü angezeigt wird.
- Erfordert keine programmgesteuerte Unterstützung, damit das Menü angezeigt wird.

Auf der Menüschaltfläche wird ein Befehl aus dem Menümenü angezeigt. Der angezeigte Befehl weist eines der folgenden Merkmale auf:

– Es handelt sich um den letzten Befehl, der verwendet wurde, wenn der Befehl weiterhin angezeigt und aktiviert ist.
- Es ist der erste angezeigte Befehl.

MenuControllerLatched
Stellt ein Dropdownmenü für geteilte Schaltflächen bereit, für das ein Befehl als Standardauswahl angegeben werden kann, indem er den Befehl als geriegelt markiert.

Ein deaktivierter Befehl ist ein Befehl, der im Menü als ausgewählt markiert ist, in der Regel durch Anzeigen eines Häkchens. Ein Befehl kann als "latched" markiert werden, wenn das OLECMDF_LATCHED Flag in einer Implementierung der QueryStatus Methode der IOleCommandTarget Schnittstelle festgelegt ist. Ein MenuControllerLatched-Menü weist die folgenden Merkmale auf:

- Muss in einem anderen Menü über eine übergeordnete Gruppe oder commandPlacement enthalten sein.
- respektiert die Eltern in ihrer Definition.
- Kann eine beliebige Art von Menü als übergeordnetes Element haben.
– Wird verfügbar gemacht, wenn das übergeordnete Menü angezeigt wird.
- Erfordert keine programmgesteuerte Unterstützung, damit das Menü angezeigt wird.

Auf der Menüschaltfläche wird ein Befehl aus dem Menümenü angezeigt. Der angezeigte Befehl weist eines der folgenden Merkmale auf:

- Es ist der erste angezeigte Befehl, der geriegelt ist.
- Es ist der erste angezeigte Befehl.

Symbolleiste
Stellt eine Symbolleiste bereit. Eine Symbolleiste weist die folgenden Merkmale auf:

- Ignoriert das übergeordnete Element in seiner Definition.
- Es kann kein Untermenü einer Gruppe erstellt werden, nicht einmal mithilfe von CommandPlacement.
– Kann immer angezeigt werden, indem sie im Menü "Ansicht" auf Symbolleisten klicken.
- Kann mithilfe eines VisibilityItem-Objekts angezeigt werden.
- Erfordert keinen Code, um ihn zu erstellen. Ein Beispiel zum Erstellen einer Symbolleiste finden Sie unter Hinzufügen einer Symbolleiste.

ToolWindowToolbar
Stellt eine Symbolleiste bereit, die an ein bestimmtes Toolfenster angefügt ist, genauso wie eine Symbolleiste an die Entwicklungsumgebung angefügt ist.

- Ignoriert das übergeordnete Element in seiner Definition.
- Es kann kein Untermenü einer Gruppe erstellt werden, nicht einmal mithilfe von CommandPlacement.
– Wird nur angezeigt, wenn das Toolfenster, das die Symbolleiste hostet, angezeigt wird, und das VSPackage die Symbolleiste explizit dem Toolfenster hinzufügt. Dies geschieht in der Regel, wenn das Toolfenster erstellt wird, indem die Symbolleistenhosteigenschaft (wie durch die IVsToolWindowToolbarHost Schnittstelle dargestellt) aus dem Toolfensterframe abgerufen und dann die AddToolbar Methode aufgerufen wird.
Bedingung Optional. Siehe Bedingte Attribute.

Untergeordnete Elemente

Element Beschreibung
Parent Optional. Das übergeordnete Element des Menüelements.
CommandFlag Erforderlich. Siehe Befehlskennzeichnungselement. Die gültigen CommandFlag-Werte für ein Menü sind wie folgt:

- Alwayscreate
- DefaultDocked
- DefaultInvisible – Dieses Flag wirkt sich nicht auf die Anzeige von Symbolleisten aus.
- DontCache
- DynamicVisibility – Dieses Kennzeichen wirkt sich nicht auf die Anzeige von Symbolleisten aus.
- IconAndText
- NoCustomize
- NotInTBList
- NoToolbarClose
- TextChanges
- TextIsAnchorCommand
Zeichenfolgen Erforderlich. Siehe Strings-Element. Das untergeordnete ButtonText Element muss definiert werden.
Anmerkung Optionaler Kommentar.

Übergeordnete Elemente

Element Beschreibung
Menus-Element Definiert alle Menüs, die ein VSPackage implementiert.

Beispiel

<Menu guid="cmdGuidWidgetCommands" id="menuIDEditWidget"
  priority="0x0002" type="Menu">
  <Parent guid="cmdSetGuidWidgetCommands" id="groupIDFileEdit"/>
  <CommandFlag>AlwaysCreate</CommandFlag>
  <Strings>
    <ButtonText>Edit Widget</ButtonText>
  </Strings>
</Menu>

Siehe auch