Élément Menu

Définit un élément de menu. Il s’agit des six types de menus : Contexte, Menu, MenuController, MenuControllerLatched, Toolbar et ToolWindowToolbar.

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
guid Obligatoire. GUID de l’identificateur de commande GUID/ID.
id Obligatoire. ID de l’identificateur de commande GUID/ID.
priority facultatif. Valeur numérique qui spécifie la position relative d’un menu dans un groupe de menus.
toolbarPriorityInBand facultatif. Valeur numérique qui spécifie la position relative d’une barre d’outils dans une bande lorsque la fenêtre est ancrée.
type facultatif. Valeur énumérée qui spécifie le type d’élément.

S’il n’est pas présent, le type par défaut est Menu.

Context
Menu contextuel affiché lorsqu’un utilisateur clique avec le bouton droit sur une fenêtre. Un menu contextuel présente les caractéristiques suivantes :

- N’utilise pas les champs Parent et Priorité lorsque le menu doit être affiché en tant que menu contextuel.
- Peut être utilisé comme sous-menu et également en tant que menu contextuel. Dans ce cas, les champs ID de groupe et Priorité sont respectés.
- N’est pas toujours disponible.

Un menu contextuel s’affiche uniquement lorsque les conditions suivantes sont remplies :

- Fenêtre qui l’héberge s’affiche.
- Un gestionnaire de souris dans VSPackage détecte un clic droit sur la fenêtre, puis appelle une méthode qui gère la commande.
- Le menu contextuel s’affiche en appelant la ShowContextMenu méthode (l’approche recommandée) ou la ShowContextMenu méthode.

Menu
Fournit un menu déroulant. Un menu déroulant présente les caractéristiques suivantes :

- Respecte le parent dans sa définition.
- Doit avoir un groupe parent ou un CommandPlacement à un groupe.
- Peut être un sous-menu dans n’importe quel autre type de menu.
- S’affiche automatiquement chaque fois que son menu parent est affiché.
- Ne nécessite pas l’implémentation d’un code VSPackage pour l’afficher.

MenuController
Fournit un menu déroulant à bouton fractionné, qui est généralement utilisé dans les barres d’outils. Un menu MenuController présente les caractéristiques suivantes :

- Doit être contenu dans un autre menu via Parent ou CommandPlacement.
- Respecte le parent dans sa définition.
- Peut avoir n’importe quel type de menu en tant que parent.
- Est automatiquement mis à disposition chaque fois que son menu parent est affiché.
- Ne nécessite pas de prise en charge programmatique pour afficher le menu.

Une commande du menu split-button s’affiche sur le bouton de menu. La commande affichée présente l’une des caractéristiques suivantes :

- Il s’agit de la dernière commande utilisée si la commande est toujours affichée et activée.
- Il s’agit de la première commande affichée.

MenuControllerLatched
Fournit un menu déroulant fractionné pour lequel une commande peut être spécifiée comme sélection par défaut en marquant la commande comme verrou.

Une commande en verrou est une commande marquée dans le menu comme sélectionnée, généralement en affichant une marque de case activée. Une commande peut être marquée comme latched si l’indicateur de OLECMDF_LATCHED est défini sur celui-ci dans une implémentation de la QueryStatus méthode de l’interface IOleCommandTarget . Un menu MenuControllerLatched présente les caractéristiques suivantes :

- Doit être contenu dans un autre menu via un groupe parent ou CommandPlacement.
- Respecte le parent dans sa définition.
- Peut avoir n’importe quel type de menu en tant que parent.
- Est disponible chaque fois que son menu parent est affiché.
- Ne nécessite pas de prise en charge programmatique pour afficher le menu.

Une commande du menu split-button s’affiche sur le bouton de menu. La commande affichée présente l’une des caractéristiques suivantes :

- Il s’agit de la première commande affichée qui est bloquée.
- Il s’agit de la première commande affichée.

Barre d’outils
Fournit une barre d’outils. Une barre d’outils présente les caractéristiques suivantes :

- Ignore le parent dans sa définition.
- Impossible d’effectuer un sous-menu d’un groupe, pas même en utilisant CommandPlacement.
- Peut toujours être affiché en cliquant sur Barres d’outils dans le menu Affichage .
- Peut être affiché à l’aide d’un Objet VisibilityItem.
- Ne nécessite aucun code pour le créer. Pour obtenir un exemple sur la création d’une barre d’outils, consultez Ajouter une barre d’outils.

ToolWindowToolbar
Fournit une barre d’outils attachée à une fenêtre d’outil spécifique, tout comme une barre d’outils est attachée à l’environnement de développement.

- Ignore le parent dans sa définition.
- Impossible d’effectuer un sous-menu d’un groupe, pas même en utilisant CommandPlacement.
- S’affiche uniquement lorsque la fenêtre outil qui héberge la barre d’outils s’affiche et que VSPackage ajoute explicitement la barre d’outils à la fenêtre outil. Cette opération est généralement effectuée lorsque la fenêtre outil est créée en obtenant la propriété hôte de la barre d’outils (telle qu’elle est représentée par l’interface IVsToolWindowToolbarHost ) à partir du cadre de la fenêtre outil, puis en appelant la AddToolbar méthode.
Condition facultatif. Consultez les attributs conditionnels.

Éléments enfants

Élément Description
Parent facultatif. Élément parent de l’élément de menu.
CommandFlag Obligatoire. Voir l’élément Indicateur de commande. Les valeurs CommandFlag valides pour un menu sont les suivantes :

- AlwaysCreate
- DefaultDocked
- DefaultInvisible : cet indicateur n’affecte pas l’affichage des barres d’outils.
- DontCache
- DynamicVisibility : cet indicateur n’affecte pas l’affichage des barres d’outils.
- IconAndText
- NoCustomize
- NotIn To List
- NoToolbarClose
- TextChanges
- TextIsAnchorCommand
Chaînes Obligatoire. Voir l’élément Strings. L’élément enfant ButtonText doit être défini.
Annotation Commentaire facultatif.

Éléments parents

Élément Description
Élément Menus Définit tous les menus implémentés par un VSPackage.

Exemple

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

Voir aussi