Partager via


Comment : Ajoutez des contrôleurs de menu des barres d'outils

  • Un contrôleur de menu apparaît sur une barre d'outils en tant que bouton qui comporte une flèche de déroulement en regard. Lorsqu'un utilisateur clique sur le contrôleur de menu, il affiche un menu qui contient les groupes du contrôleur de menu en tant que parent. Deux exemples des contrôleurs de menu dans Visual Studio sont la zone de Rechercher dans la barre d'outils principale et le sélecteur d'objet en haut de la fenêtre de Propriétés .

  • Lorsqu'un utilisateur clique sur une commande dans la liste déroulante attachée à un contrôleur de menu, la commande est exécutée et le nom de la commande est affiché sur le bouton de contrôleur de menu. Pour exécuter la commande de nouveau, l'utilisateur peut simplement cliquer sur le bouton.

Notes

Bien que vous puissiez mettre un contrôleur de menu dans un menu, nous vous recommandons d'utiliser un sous-menu à la place parce qu'il est plus facile d'implémenter et sont plus cohérentes avec une interface utilisateur courants.

  • les contrôleurs de menu ont les caractéristiques suivantes :

  • L'icône et le texte de la première commande visible dans la liste déroulante s'affiche sur le bouton de contrôleur de menu.

  • Lorsqu'une commande dans la liste déroulante est sélectionnée, l'icône et le texte pour cette commande est affichée sur le bouton.

  • L'icône ou du texte d'une commande, ou les deux, peuvent être affichés.

  • Le bouton peut être configuré pour effectuer la même commande chaque fois qu'un utilisateur clique dessus. Dans ce cas, lorsqu'un utilisateur clique sur une commande dans la liste déroulante, elle est exécutée mais son nom n'est pas affiché sur le bouton.

Pour modifier ces caractéristiques, appliquez les balises dans le fichier de .vsct sur lequel le contrôleur de menu est défini. Pour plus d'informations, consultez Tableau de commande Visual Studio (. fichiers de Vsct).

créer un contrôleur de menu

pour créer et ajouter un contrôleur de menu

  1. Créez un projet d'un VSPackage, ou ouvrez un projet existant d'un VSPackage qui inclut un fichier de .vsct.

  2. ouvrez le fichier de .vsct dans l'éditeur.

  3. Dans la section qui est formée par Symbols, élément, recherchez GuidSymbol, élément qui contient vos menus, groupes, et commandes. Par défaut, il est nommé GUID <ProjectName> CmdSet.

  4. Comme indiqué dans l'exemple suivant, ajoutez IDSymbol, élément pour que votre contrôleur de menu, chaque commande qu'il hébergera, et un ou plusieurs groupes contiennent les commandes.

    <IDSymbol name="TestMenuController" value="0x1300" />
    <IDSymbol name="TestMenuControllerGroup" value="0x1060" />
    <IDSymbol name="cmdidMCItem1" value="0x0130" />
    <IDSymbol name="cmdidMCItem2" value="0x0131" />
    <IDSymbol name="cmdidMCItem3" value="0x0132" />
    
  5. dans Commands, élément, créez Menus Element.

  6. Dans l'élément d' Menus , définissez votre contrôleur de menu sous forme de menu, comme suit.

    1. Définir les attributs d' guid et d' id à un GUID : ID du nouveau contrôleur de menu.

      GUID : La paire d'ID est formée par les attributs d' name des éléments d' GuidSymbol et d' IDSymbol dans la définition de contrôleur de menu dans la section d' Symbols .

    2. définissez l'attribut d' priority pour déterminer la position du contrôleur de menu à son groupe parent.

    3. définissez l'attribut d' type àMenuController ou à MenuControllerLatched.

      La valeur de MenuController signifie que le contrôleur de menu affiche initialement la première commande visible.

      La valeur de MenuControllerLatched signifie que le contrôleur de menu utilise la première commande visible qui est sélectionnée comme commande initialement affiche. Si aucune commande n'est sélectionnée, la première commande visible s'affiche.

    4. Dans l'élément d' Menu , créez Élément parent et définissez ses attributs d' guid et d' id à un GUID : ID du groupe qui héberge le contrôleur de menu. Cela peut être un groupe Visual Studio existant, tel que le guidStdEditor : IDG_VS_EDITTOOLBAR_COMMENT, qui contient les boutons de Commentaire et de supprimez le commentaire dans la barre d'outils de l'éditeur, ou peut être un groupe défini par l'utilisateur.

      Vous pouvez omettre l'élément d' Parent si le contrôleur de menu sera placé à l'aide de positionnement de commande. Pour cela, avant la section d' Symbols , créez CommandPlacements, élément. Ajoutez CommandPlacement, élément qui a un GUID : ID du contrôleur de menu, d'une priorité, et d'un parent.

      Plusieurs positionnements de commande qui ont la même paire GUID : L'ID mais ont des causes de parents un contrôleur de menu à apparaître dans plusieurs emplacements. Pour plus d'informations, consultez CommandPlacements, élément et Comment : Créer des groupes personnalisés de boutons.

    5. Après le parent, utilisez Strings, élément pour créer une section qui contient ButtonText, élément et CommandName, élément. L'élément d' ButtonText est utilisé pour définir le nom de la barre d'outils qu'il apparaît dans l'IDE. L'élément d' CommandName est utilisé pour définir le nom de la commande qui peut être entré dans la fenêtre de Commande pour accéder à la barre d'outils.

    l'exemple suivant définit un contrôleur de menu.

    <Menu guid="guidTWToolbarCmdSet" id="TestMenuController" priority="0x0100" type="MenuController">
      <Parent guid="guidTWToolbarCmdSet" id="TWToolbarGroup" />
      <CommandFlag>IconAndText</CommandFlag>
      <CommandFlag>TextChanges</CommandFlag>
      <CommandFlag>TextIsAnchorCommand</CommandFlag>
      <Strings>
        <ButtonText>Test Menu Controller</ButtonText>
        <CommandName>Test Menu Controller</CommandName>
      </Strings>
    </Menu>
    
  7. Dans Groups, élément, créez Group, élément pour contenir les commandes que vous souhaitez voir apparaître sur votre contrôleur de menu.

    1. Définissez la priorité du groupe pour déterminer où il s'affiche dans votre contrôleur de menu s'il existe plusieurs groupes.

    2. Définissez le parent du groupe à un GUID : ID du contrôleur de menu.

    Le groupe suivant s'affiche sur le contrôleur de menu de l'exemple précédent.

    <Group guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" priority="0x000">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuController" />
    </Group>
    
  8. dans Buttons, élément, ajoutez Button, élément pour chaque commande que vous souhaitez ajouter au contrôleur de menu. Chaque commande doit spécifier comme son parent d'un groupe sur le contrôleur de menu, comme indiqué dans l'exemple suivant.

    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem1" priority="0x0000" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPic1" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 1</ButtonText>
        <CommandName>MC Item 1</CommandName>
      </Strings>
    </Button>
    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem2" priority="0x0100" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPic2" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 2</ButtonText>
        <CommandName>MC Item 2</CommandName>
      </Strings>
    </Button>
    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem3" priority="0x0200" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPicSearch" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 3</ButtonText>
        <CommandName>MC Item 3</CommandName>
      </Strings>
    </Button>
    

    Pour forcer le contrôleur de menu bouton pour afficher la même commande chaque fois qu'elle est sélectionnée, définit la balise d' FixMenuController sur la commande.

    L'élément d' Parent peut être omis pour les commandes qui seront placées en utilisant le positionnement de commande.

Voir aussi

Tâches

Procédure pas - à - pas : Ajout d'un contrôleur de menu à une barre d'outils

Concepts

Référence du schéma XML VSCT

Autres ressources

Procédures pas - à - pas pour les commandes, de menus, et les barres d'outils

commandes, menus, et barres d'outils

Tâches courantes avec des commandes, des menus, et les barres d'outils