Share via


Elemento de menu

Define um item de menu. Estes são os seis tipos de menus: Context, Menu, MenuController, MenuControllerLatched, Toolbar e ToolWindowToolbar.

Syntax

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

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
guid Obrigatório. GUID do identificador de comando GUID/ID.
ID Obrigatório. ID do identificador de comando GUID/ID.
priority Opcional. Um valor numérico que especifica a posição relativa de um menu em um grupo de menus.
barra de ferramentasPriorityInBand Opcional. Um valor numérico que especifica a posição relativa de uma barra de ferramentas em uma banda quando a janela é encaixada.
tipo Opcional. Um valor enumerado que especifica o tipo de elemento.

Se não estiver presente, o tipo padrão será Menu.

Contexto
Um menu de atalho que é mostrado quando um usuário clica com o botão direito do mouse em uma janela. Um menu de atalho tem as seguintes características:

- Não usa os campos Pai e Prioridade quando o menu deve ser exibido como um menu de atalho.
- Pode ser usado como um submenu e também como um menu de atalho. Nesse caso, os campos ID do Grupo e Prioridade são respeitados.
- Nem sempre está disponível.

Um menu de atalho é exibido somente quando as seguintes condições forem verdadeiras:

- A janela que o hospeda é exibida.
- Um manipulador de mouse no VSPackage detecta um clique com o botão direito do mouse na janela e, em seguida, chama um método que manipula o comando.
- O menu de atalho é exibido chamando o método (a abordagem recomendada) ou o ShowContextMenuShowContextMenu método.

Menu
Fornece um menu suspenso. Um menu suspenso tem as seguintes características:

- Respeita o Pai na sua definição.
- Deve ter um grupo pai ou um CommandPlacement para um grupo.
- Pode ser um submenu em qualquer outro tipo de menu.
- É exibido automaticamente sempre que seu menu pai é exibido.
- Não requer a implementação de qualquer código VSPackage para torná-lo exibido.

MenuController
Fornece um menu suspenso de botão dividido, que normalmente é usado em barras de ferramentas. Um menu MenuController tem as seguintes características:

- Deve estar contido em outro menu através de Parent ou CommandPlacement.
- Respeita o Pai na sua definição.
- Pode ter qualquer tipo de cardápio como pai.
- É disponibilizado automaticamente sempre que seu menu pai é exibido.
- Não requer suporte programático para que o menu seja exibido.

Um comando do menu de botão dividido é exibido no botão de menu. O comando exibido tem uma das seguintes características:

- É o último comando que foi usado se o comando ainda estiver exibido e habilitado.
- É o primeiro comando exibido.

MenuControllerLatched
Fornece um menu suspenso de botão dividido para o qual um comando pode ser especificado como a seleção padrão, marcando o comando como travado.

Um comando travado é um comando que é marcado no menu como selecionado, normalmente exibindo uma marca de seleção. Um comando pode ser marcado como travado se tiver o sinalizador OLECMDF_LATCHED definido nele em uma implementação do QueryStatus método da IOleCommandTarget interface. Um menu MenuControllerLatched tem as seguintes características:

- Deve estar contido em outro menu através de um grupo pai ou CommandPlacement.
- Respeita o Pai na sua definição.
- Pode ter qualquer tipo de cardápio como pai.
- É disponibilizado sempre que seu menu pai é exibido.
- Não requer suporte programático para que o menu seja exibido.

Um comando do menu de botão dividido é exibido no botão de menu. O comando exibido tem uma das seguintes características:

- É o primeiro comando exibido que é travado.
- É o primeiro comando exibido.

Barra de ferramentas
Fornece uma barra de ferramentas. Uma barra de ferramentas tem as seguintes características:

- Ignora o Pai em sua definição.
- Não pode ser feito um submenu de nenhum grupo, nem mesmo usando CommandPlacement.
- Sempre pode ser exibido clicando em barras de ferramentas no menu Exibir.
- Pode ser exibido usando um VisibilityItem.
- Não requer nenhum código para criá-lo. Para obter um exemplo sobre como criar uma barra de ferramentas, consulte Adicionar uma barra de ferramentas.

ToolWindowToolbar
Fornece uma barra de ferramentas anexada a uma janela de ferramenta específica, assim como uma barra de ferramentas é anexada ao ambiente de desenvolvimento.

- Ignora o Pai em sua definição.
- Não pode ser feito um submenu de nenhum grupo, nem mesmo usando CommandPlacement.
- É exibido somente quando a janela de ferramenta que hospeda a barra de ferramentas é exibida e o VSPackage adiciona explicitamente a barra de ferramentas à janela da ferramenta. Isso geralmente é feito quando a janela de ferramenta é criada obtendo a propriedade de host da barra de ferramentas (conforme representada pela IVsToolWindowToolbarHost interface) do quadro da janela de ferramenta e, em seguida, chamando o AddToolbar método.
Condição Opcional. Consulte Atributos condicionais.

Elementos filho

Elemento Descrição
Pai Opcional. O elemento pai do item de menu.
CommandFlag Obrigatório. Consulte Elemento sinalizador de comando. Os valores CommandFlag válidos para um Menu são os seguintes:

- SempreCriar
- DefaultDocked
- DefaultInvisible - Esse sinalizador não afeta a exibição de barras de ferramentas.
- DontCache
- DynamicVisibility - Este sinalizador não afeta a exibição de barras de ferramentas.
- IconAndText
- NãoPersonalizar
- NotInTBList
- NoToolbarFechar
- Alterações de texto
- TextIsAnchorCommand
Cadeias de caracteres Obrigatório. Consulte Elemento Strings. O elemento filho ButtonText deve ser definido.
Annotation Comentário opcional.

Elementos pai

Elemento Descrição
Elemento Menus Define todos os menus que um VSPackage implementa.

Exemplo

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

Confira também