Elemento Menu

Define un elemento de menú. Estos son los seis tipos de menús: Contextual, Menu, MenuController, MenuControllerLatched, Toolbar y ToolWindowToolbar.

Sintaxis

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

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
guid Necesario. GUID del identificador de comando GUID/ID.
id Necesario. Identificador del identificador de comando GUID/ID.
priority Opcional. Valor numérico que especifica la posición relativa de un menú en un grupo de menús.
toolbarPriorityInBand Opcional. Valor numérico que especifica la posición relativa de una barra de herramientas en una banda cuando se acopla la ventana.
type Opcional. Valor enumerado que especifica el tipo de elemento .

Si no está presente, el tipo predeterminado es Menu.

Context
Menú contextual que se muestra cuando un usuario hace clic con el botón derecho en una ventana. Un menú contextual tiene las siguientes características:

- No usa los campos Primario y Prioridad cuando el menú se va a mostrar como un menú contextual.
- Se puede usar como submenú y también como menú contextual. En este caso, se respetan los campos Id. de grupo y Prioridad .
- No siempre está disponible.

Solo se muestra un menú contextual cuando se cumplen las condiciones siguientes:

- Ventana que hospeda la pantalla.
- Un controlador de mouse en VSPackage detecta un clic derecho en la ventana y, a continuación, llama a un método que controla el comando.
- El menú contextual se muestra llamando al ShowContextMenu método (el enfoque recomendado) o al ShowContextMenu método .

Menu
Proporciona un menú desplegable. Un menú desplegable tiene las siguientes características:

- Respeta al padre en su definición.
- Debe tener un grupo primario o un CommandPlacement en un grupo.
- Puede ser un submenú en cualquier otro tipo de menú.
- Se muestra automáticamente cada vez que se muestra su menú primario.
- No requiere la implementación de ningún código VSPackage para que se muestre.

MenuController
Proporciona un menú desplegable de botón dividido, que normalmente se usa en las barras de herramientas. Un menú MenuController tiene las siguientes características:

- Debe estar contenido en otro menú a través de Parent o CommandPlacement.
- Respeta al padre en su definición.
- Puede tener cualquier tipo de menú como elemento primario.
- Se pone automáticamente a disposición cada vez que se muestra su menú primario.
- No requiere compatibilidad mediante programación para que se muestre el menú.

Se muestra un comando del menú de botón dividido en el botón de menú. El comando mostrado tiene una de las siguientes características:

- Es el último comando que se usó si el comando todavía se muestra y está habilitado.
- Es el primer comando mostrado.

MenuControllerLatched
Proporciona un menú desplegable de botón dividido para el que se puede especificar un comando como selección predeterminada marcando el comando como bloqueo temporal.

Un comando con bloqueo temporal es un comando marcado en el menú como seleccionado, normalmente mostrando una marca de verificación. Un comando se puede marcar como bloqueo temporal si tiene la marca OLECMDF_LATCHED establecida en él en una implementación del QueryStatus método de la IOleCommandTarget interfaz. Un menú MenuControllerLatched tiene las siguientes características:

- Debe estar contenido en otro menú a través de un grupo primario o CommandPlacement.
- Respeta al padre en su definición.
- Puede tener cualquier tipo de menú como elemento primario.
- Se pone a disposición cada vez que se muestra su menú primario.
- No requiere compatibilidad mediante programación para que se muestre el menú.

Se muestra un comando del menú de botón dividido en el botón de menú. El comando mostrado tiene una de las siguientes características:

- Es el primer comando mostrado que está en bloqueo temporal.
- Es el primer comando mostrado.

Barra de herramientas
Proporciona una barra de herramientas. Una barra de herramientas tiene las siguientes características:

: omite el elemento primario en su definición.
- No se puede realizar un submenú de ningún grupo, ni siquiera mediante CommandPlacement.
- Siempre se puede mostrar haciendo clic en Barras de herramientas en el menú Ver .
- Se puede mostrar mediante un objeto VisibilityItem.
- No requiere ningún código para crearlo. Para obtener un ejemplo sobre cómo crear una barra de herramientas, vea Agregar una barra de herramientas.

ToolWindowToolbar
Proporciona una barra de herramientas que está asociada a una ventana de herramientas específica, al igual que una barra de herramientas se adjunta al entorno de desarrollo.

: omite el elemento primario en su definición.
- No se puede realizar un submenú de ningún grupo, ni siquiera mediante CommandPlacement.
: solo se muestra cuando se muestra la ventana de herramientas que hospeda la barra de herramientas y VSPackage agrega explícitamente la barra de herramientas a la ventana de herramientas. Normalmente, esto se hace cuando se crea la ventana de herramientas obteniendo la propiedad host de la barra de herramientas (representada por la interfaz) desde el IVsToolWindowToolbarHost marco de la ventana de herramientas y, a continuación, llamando al AddToolbar método .
Condición Opcional. Consulte Atributos condicionales.

Elementos secundarios

Elemento Descripción
Parent Opcional. Elemento primario del elemento de menú.
CommandFlag Necesario. Vea Elemento de marca de comando. Los valores de CommandFlag válidos para un menú son los siguientes:

- AlwaysCreate
- DefaultDocked
- DefaultInvisible : esta marca no afecta a la visualización de las barras de herramientas.
- DontCache
- DynamicVisibility : esta marca no afecta a la visualización de las barras de herramientas.
- IconAndText
- NoCustomize
- NotInTBList
- NoToolbarClose
- TextChanges
- TextIsAnchorCommand
Cadenas Necesario. Consulte el elemento Strings. El elemento secundario ButtonText debe definirse.
Anotación Comentario opcional.

Elementos primarios

Elemento Descripción
Elemento Menus Define todos los menús que implementa un VSPackage.

Ejemplo

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

Consulte también