Conception de commandes

Lorsque vous ajoutez une commande à un VSPackage, vous devez spécifier l’emplacement d’affichage, le moment où elle est disponible et la façon dont elle doit être gérée.

Définir des commandes

Pour définir de nouvelles commandes, incluez un fichier de table de commandes Visual Studio (.vsct) dans votre projet VSPackage. Si vous avez créé un VSPackage à l’aide du modèle de package Visual Studio, le projet inclut l’un de ces fichiers. Pour plus d’informations, consultez les fichiers de la table de commandes Visual Studio (.vsct).

Visual Studio fusionne tous les fichiers .vsct qu’il trouve afin qu’il puisse afficher les commandes. Étant donné que ces fichiers sont distincts du fichier binaire VSPackage, Visual Studio n’a pas à charger le package pour rechercher les commandes. Pour plus d’informations, consultez Comment les VSPackages ajoutent des éléments d’interface utilisateur.

Visual Studio utilise l’attribut d’inscription ProvideMenuResourceAttribute pour définir des ressources de menu et des commandes. Pour plus d’informations, consultez implémentation de commande.

Les commandes peuvent être modifiées au moment de l’exécution de plusieurs façons différentes. Elles peuvent être affichées ou masquées, activées ou désactivées. Ils peuvent afficher différents texte ou icônes, ou contenir des valeurs différentes. Une grande quantité de personnalisation peut être effectuée avant que Visual Studio charge votre VSPackage. Pour plus d’informations, consultez Comment les VSPackages ajoutent des éléments d’interface utilisateur.

Gestionnaires de commandes

Lorsque vous créez une commande, vous devez fournir un gestionnaire d’événements pour exécuter la commande. Si l’utilisateur sélectionne la commande, elle doit être correctement routée. Le routage d’une commande signifie l’envoyer au VSPackage approprié pour l’activer ou le désactiver, le masquer ou l’afficher et l’exécuter si l’utilisateur choisit de le faire. Pour plus d’informations, consultez l’algorithme de routage des commandes.

Environnement de commande Visual Studio

Visual Studio peut héberger n’importe quel nombre de VSPackages, et chacun peut contribuer à son propre jeu de commandes. L’environnement affiche uniquement les commandes appropriées à la tâche actuelle. Pour plus d’informations, consultez La disponibilité des commandes et les objets de contexte de sélection.

Un VSPackage qui définit de nouvelles commandes, menus, barres d’outils ou menus contextuels fournit ses informations de commande à Visual Studio au moment de l’installation via des entrées de Registre qui référencent des ressources dans des assemblys natifs ou managés. Chaque ressource fait ensuite référence à un fichier de ressource de données binaire (.cto), qui est généré lorsque vous compilez un fichier de table de commandes Visual Studio (.vsct). Cela permet à Visual Studio de fournir des ensembles de commandes fusionnés, des menus et des barres d’outils sans avoir à charger chaque VSPackage installé.

Organisation de commandes

L’environnement positionne les commandes par groupe, priorité et menu.

  • Les groupes sont des collections logiques de commandes associées, par exemple le groupe de commandes Couper, Copier et Coller. Les groupes sont les commandes qui apparaissent dans les menus.

  • La priorité détermine l’ordre dans lequel les commandes individuelles d’un groupe apparaissent dans le menu.

  • Les menus agissent en tant que conteneurs pour les groupes.

    L’environnement prédéfinit certaines commandes, groupes et menus. Pour plus d’informations, consultez La commande par défaut, le groupe et l’emplacement de la barre d’outils.

    Une commande peut être affectée à un groupe principal. Le groupe principal contrôle la position de la commande dans la structure du menu principal et dans la boîte de dialogue Personnaliser . Une commande peut apparaître dans plusieurs groupes ; Par exemple, une commande peut se trouver dans le menu principal, dans un menu contextuel et dans une barre d’outils. Pour plus d’informations, consultez Comment les VSPackages ajoutent des éléments d’interface utilisateur.

Routage des commandes

Le processus d’appel et de routage des commandes pour VSPackages diffère du processus d’appel de méthodes sur les instances d’objet.

L’environnement achemine les commandes de manière séquentielle du contexte de commande le plus interne (local), qui est basé sur la sélection actuelle, vers le contexte le plus externe (global). Le premier contexte capable d’exécuter la commande est celui qui le gère. Pour plus d’informations, consultez l’algorithme de routage des commandes.

Dans la plupart des cas, l’environnement gère les commandes à l’aide de l’interface IOleCommandTarget . Étant donné que le schéma de routage des commandes permet à de nombreux objets différents de gérer des commandes, IOleCommandTarget il peut être implémenté par n’importe quel nombre d’objets ; il s’agit notamment de contrôles Microsoft ActiveX, d’implémentations d’affichage de fenêtres, d’objets de document, de hiérarchies de projet et d’objets VSPackage eux-mêmes (pour les commandes globales). Dans certains cas spécialisés, par exemple, les commandes de routage dans une hiérarchie, l’interface IVsHierarchy doit être implémentée.

Intitulé Description
Implémentation de commande Décrit comment implémenter des commandes dans un VSPackage.
Disponibilité des commandes Décrit comment le contexte Visual Studio détermine les commandes disponibles.
Algorithme de routage des commandes Décrit comment l’architecture de routage des commandes Visual Studio permet de gérer les commandes par différents VSPackages.
Instructions relatives à l’emplacement des commandes Suggère comment positionner des commandes dans l’environnement Visual Studio.
Comment les VSPackages ajoutent des éléments d’interface utilisateur Décrit comment les VSPackages peuvent utiliser l’architecture de commande Visual Studio.
Commande, groupe et placement de barre d’outils par défaut Décrit comment les VSPackages peuvent utiliser au mieux les commandes incluses dans Visual Studio.
Gérer les VSPackages Décrit comment Visual Studio charge vsPackages.
Fichiers de table de commandes Visual Studio (.vsct) Fournit des informations sur les fichiers .vsct basés sur XML, qui sont utilisés pour décrire la disposition et l’apparence des commandes dans VSPackages.