Compartilhar via


Design de comando

Ao adicionar um comando a um VSPackage, você deve especificar onde ele deve aparecer, quando está disponível e como deve ser manipulado.

Definir comandos

Para definir novos comandos, inclua um arquivo de tabela de comandos (.vsct) do Visual Studio em seu projeto VSPackage. Se você criou um VSPackage usando o modelo de pacote do Visual Studio, o projeto inclui um desses arquivos. Para obter mais informações, consulte Arquivos de tabela de comando (.vsct) do Visual Studio.

Visual Studio mescla todos os arquivos .vsct que ele encontra para que ele possa exibir os comandos. Como esses arquivos são distintos do binário VSPackage, Visual Studio não precisa carregar o pacote para localizar os comandos. Para obter mais informações, consulte Como os VSPackages adicionam elementos da interface do usuário.

Visual Studio usa o ProvideMenuResourceAttribute atributo de registro para definir recursos de menu e comandos. Para obter mais informações, consulte Implementação de comando.

Os comandos podem ser alterados em tempo de execução de várias maneiras diferentes. Eles podem ser exibidos ou ocultos, habilitados ou desativados. Eles podem exibir texto ou ícones diferentes ou conter valores diferentes. Uma grande quantidade de personalização pode ser executada antes do Visual Studio carrega seu VSPackage. Para obter mais informações, consulte Como os VSPackages adicionam elementos da interface do usuário.

Manipuladores de comandos

Ao criar um comando, você deve fornecer um manipulador de eventos para executá-lo. Se o usuário selecionar o comando, ele deverá ser roteado adequadamente. Rotear um comando significa enviá-lo para o VSPackage correto para habilitá-lo ou desabilitá-lo, ocultá-lo ou exibi-lo e executá-lo se o usuário optar por fazê-lo. Para obter mais informações, consulte Algoritmo de roteamento de comando.

Ambiente de comando do Visual Studio

Visual Studio pode hospedar qualquer número de VSPackages, e cada um pode contribuir com seu próprio conjunto de comandos. O ambiente exibe apenas os comandos apropriados para a tarefa atual. Para obter mais informações, consulte Disponibilidade de comando e Objetos de contexto de seleção.

Um VSPackage que define novos comandos, menus, barras de ferramentas ou menus de atalho fornece suas informações de comando para o Visual Studio no momento da instalação por meio de entradas do Registro que fazem referência a recursos em assemblies nativos ou gerenciados. Em seguida, cada recurso faz referência a um arquivo de recurso de dados binário (.cto), que é produzido quando você compila um arquivo de tabela de comandos (.vsct) do Visual Studio. Isso permite que o Visual Studio forneça conjuntos de comandos, menus e barras de ferramentas mesclados sem precisar carregar todos os VSPackage instalados.

Organização de comando

O ambiente posiciona os comandos por grupo, prioridade e menu.

  • Grupos são coleções lógicas de comandos relacionados, por exemplo, o grupo de comandos Recortar, Copiar e Colar . Grupos são os comandos que aparecem nos menus.

  • A prioridade determina a ordem em que os comandos individuais em um grupo aparecem no menu.

  • Os menus funcionam como contêineres para grupos.

    O ambiente predefine alguns comandos, grupos e menus. Para obter mais informações, consulte Posicionamento padrão de comando, grupo e barra de ferramentas.

    Um comando pode ser atribuído a um grupo primário. O grupo primário controla a posição do comando na estrutura do menu principal e na caixa de diálogo Personalizar . Um comando pode aparecer em vários grupos; Por exemplo, um comando pode estar no menu principal, em um menu de atalho e em uma barra de ferramentas. Para obter mais informações, consulte Como os VSPackages adicionam elementos da interface do usuário.

Roteamento de comando

O processo de invocar e rotear comandos para VSPackages difere do processo de chamar métodos em instâncias de objeto.

O ambiente roteia comandos sequencialmente do contexto de comando mais interno (local), que é baseado na seleção atual, para o contexto mais externo (global). O primeiro contexto que é capaz de executar o comando é aquele que o manipula. Para obter mais informações, consulte Algoritmo de roteamento de comando.

Na maioria dos casos, o ambiente manipula comandos usando a IOleCommandTarget interface. Como o esquema de roteamento de comandos permite que muitos objetos diferentes manipulem comandos, pode ser implementado por qualquer número de objetos, incluindo controles Microsoft ActiveX, implementações de exibição de janela, objetos de documento, IOleCommandTarget hierarquias de projeto e os próprios objetos VSPackage (para comandos globais). Em alguns casos especializados, por exemplo, roteando comandos em uma hierarquia, a IVsHierarchy interface deve ser implementada.

Título Descrição
Implementação de comando Descreve como implementar comandos em um VSPackage.
Disponibilidade do comando Descreve como o contexto do Visual Studio determina quais comandos estão disponíveis.
Algoritmo de roteamento de comando Descreve como a arquitetura de roteamento de comando do Visual Studio permite que os comandos sejam manipulados por VSPackages diferentes.
Diretrizes de posicionamento de comando Sugere como posicionar comandos no ambiente do Visual Studio.
Como os VSPackages adicionam elementos da interface do usuário Descreve como VSPackages podem utilizar melhor a arquitetura de comando do Visual Studio.
Posicionamento padrão de comando, grupo e barra de ferramentas Descreve como VSPackages pode usar melhor os comandos que estão incluídos no Visual Studio.
Gerenciar VSPackages Descreve como o Visual Studio carrega VSPackages.
Arquivos de tabela de comando (.vsct) do Visual Studio Fornece informações sobre arquivos .vsct baseados em XML, que são usados para descrever o layout e a aparência de comandos em VSPackages.