É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>