Freigeben über


Befehlsentwurf

Wenn Sie einem VSPackage einen Befehl hinzufügen, müssen Sie angeben, wo er angezeigt werden soll, wann er verfügbar ist und wie er behandelt werden soll.

Definieren von Befehlen

Um neue Befehle zu definieren, fügen Sie eine Visual Studio-Befehlstabellendatei (VSCT) in Ihr VSPackage-Projekt ein. Wenn Sie mithilfe der Visual Studio-Paketvorlage ein VSPackage erstellt haben, enthält das Projekt eine dieser Dateien. Weitere Informationen finden Sie unter Visual Studio-Befehlstabellendateien (VSCT).For more information, see Visual Studio command table (.vsct) files.

Visual Studio führt alle gefundenen VSCT-Dateien zusammen, sodass sie die Befehle anzeigen kann. Da sich diese Dateien von der VSPackage-Binärdatei unterscheiden, muss Visual Studio das Paket nicht laden, um die Befehle zu finden. Weitere Informationen finden Sie unter How VSPackages add user interface elements.

Visual Studio verwendet das ProvideMenuResourceAttribute Registrierungsattribute zum Definieren von Menüressourcen und -befehlen. Weitere Informationen finden Sie in der Befehlsimplementierung.

Befehle können zur Laufzeit auf verschiedene Arten geändert werden. Sie können angezeigt oder ausgeblendet, aktiviert oder deaktiviert werden. Sie können unterschiedliche Texte oder Symbole anzeigen oder unterschiedliche Werte enthalten. Bevor Visual Studio Ihr VSPackage lädt, kann eine große Anzahl von Anpassungen durchgeführt werden. Weitere Informationen finden Sie unter How VSPackages add user interface elements.

Befehlshandler

Wenn Sie einen Befehl erstellen, müssen Sie einen Ereignishandler bereitstellen, um den Befehl auszuführen. Wenn der Benutzer den Befehl auswählt, muss er entsprechend weitergeleitet werden. Das Weiterleiten eines Befehls bedeutet, dass er an das richtige VSPackage gesendet wird, um ihn zu aktivieren oder zu deaktivieren, auszublenden oder anzuzeigen, und es auszuführen, wenn der Benutzer dies zu tun entscheidet. Weitere Informationen finden Sie unter Befehlsroutingalgorithmus.

Visual Studio-Befehlsumgebung

Visual Studio kann eine beliebige Anzahl von VSPackages hosten, und jeder kann einen eigenen Befehlssatz beitragen. In der Umgebung werden nur die Befehle angezeigt, die für die aktuelle Aufgabe geeignet sind. Weitere Informationen finden Sie unter Befehlsverfügbarkeit und Auswahlkontextobjekte.

Ein VSPackage, das neue Befehle, Menüs, Symbolleisten oder Kontextmenüs definiert, stellt seine Befehlsinformationen zum Installationszeitpunkt über Registrierungseinträge, die auf Ressourcen in systemeigenen oder verwalteten Assemblys verweisen, an das Visual Studio weitergibt. Jede Ressource verweist dann auf eine Binärdatenressource -Datei (.cto), die beim Kompilieren einer Visual Studio-Befehlstabellendatei (VSCT) erstellt wird. Dadurch kann Visual Studio zusammengeführte Befehlssätze, Menüs und Symbolleisten bereitstellen, ohne jedes installierte VSPackage laden zu müssen.

Befehlsorganisation

Die Umgebung positioniert Befehle nach Gruppe, Priorität und Menü.

  • Gruppen sind logische Auflistungen verwandter Befehle, z. B. die Befehlsgruppe "Ausschneiden", "Kopieren" und "Einfügen" . Gruppen sind die Befehle, die in Menüs angezeigt werden.

  • Priorität bestimmt die Reihenfolge, in der einzelne Befehle in einer Gruppe im Menü angezeigt werden.

  • Menüs dienen als Container für Gruppen.

    In der Umgebung werden einige Befehle, Gruppen und Menüs vordefiniert. Weitere Informationen finden Sie unter "Standardbefehl", "Gruppe" und "Symbolleistenplatzierung".

    Einem primären Gruppen kann ein Befehl zugewiesen werden. Die primäre Gruppe steuert die Position des Befehls in der Standard Menüstruktur und im Dialogfeld "Anpassen". Ein Befehl kann in mehreren Gruppen angezeigt werden; Beispielsweise kann sich ein Befehl im menü Standard, in einem Kontextmenü und auf einer Symbolleiste befindet. Weitere Informationen finden Sie unter How VSPackages add user interface elements.

Befehlsrouting

Der Prozess des Aufrufens und Routings von Befehlen für VSPackages unterscheidet sich von dem Prozess des Aufrufens von Methoden für Objektinstanzen.

Die Umgebung leitet Befehle sequenziell vom innersten (lokalen) Befehlskontext weiter, der auf der aktuellen Auswahl basiert, an den äußersten (globalen) Kontext. Der erste Kontext, der den Befehl ausführen kann, ist der Kontext, der ihn behandelt. Weitere Informationen finden Sie unter Befehlsroutingalgorithmus.

In den meisten Fällen behandelt die Umgebung Befehle mithilfe der IOleCommandTarget Schnittstelle. Da das Befehlsroutingschema viele verschiedene Objekte zum Behandeln von Befehlen ermöglicht, IOleCommandTarget kann es durch eine beliebige Anzahl von Objekten implementiert werden. Dazu gehören Microsoft ActiveX-Steuerelemente, Fensteransichtsimplementierungen, Dokumentobjekte, Projekthierarchien und VSPackage-Objekte selbst (für globale Befehle). In einigen speziellen Fällen, z. B. Routingbefehle in einer Hierarchie, muss die IVsHierarchy Schnittstelle implementiert werden.

Titel Beschreibung
Befehlsimplementierung Beschreibt, wie Befehle in einem VSPackage implementiert werden.
Verfügbarkeit von Befehlen Beschreibt, wie der Visual Studio-Kontext bestimmt, welche Befehle verfügbar sind.
Befehlsroutingalgorithmus Beschreibt die Visual Studio-Befehlsroutingarchitektur, mit der Befehle von verschiedenen VSPackages behandelt werden können.
Richtlinien für die Platzierung von Befehlen Schlägt vor, wie Befehle in der Visual Studio-Umgebung positioniert werden.
So fügen VSPackages Benutzeroberflächenelemente hinzu Beschreibt, wie VSPackages die Visual Studio-Befehlsarchitektur am besten nutzen kann.
Standardbefehls-, Gruppen- und Symbolleistenplatzierung Beschreibt, wie VSPackages die befehle, die in Visual Studio enthalten sind, am besten verwenden können.
Verwalten von VSPackages Beschreibt, wie Visual Studio VSPackages lädt.
Visual Studio-Befehlstabellendateien (VSCT) Stellt Informationen zu XML-basierten VSCT-Dateien bereit, die zum Beschreiben des Layouts und der Darstellung von Befehlen in VSPackages verwendet werden.