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