Partilhar via


Design de comandos

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

Definir comandos

Para definir novos comandos, inclua um arquivo de tabela de comandos do Visual Studio (.vsct) 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 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 VSPackages adicionar elementos de interface do usuário.

Visual Studio usa o ProvideMenuResourceAttribute atributo registration 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, ativados 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 VSPackages adicionar elementos de interface do usuário.

Manipuladores de comando

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. Roteamento de 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 comandos.

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ários (.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.

  • Os 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 de um grupo aparecem no menu.

  • Os menus funcionam como recipientes 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 VSPackages adicionar elementos de interface do usuário.

Roteamento de comandos

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 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 comandos.

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, IOleCommandTarget incluindo controles Microsoft ActiveX, implementações de exibição de janela, objetos de documento, hierarquias de projeto e os próprios objetos VSPackage (para comandos globais). Em alguns casos especializados, por exemplo, comandos de roteamento em uma hierarquia, a IVsHierarchy interface deve ser implementada.

Title Description
Implementação de comandos Descreve como implementar comandos em um VSPackage.
Disponibilidade de comandos Descreve como o contexto do Visual Studio determina quais comandos estão disponíveis.
Algoritmo de roteamento de comandos Descreve como a arquitetura de roteamento de comandos do Visual Studio permite que os comandos sejam manipulados por diferentes VSPackages.
Diretrizes de posicionamento de comando Sugere como posicionar comandos no ambiente do Visual Studio.
Como os VSPackages adicionam elementos de interface de utilizador 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 podem 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 comandos (.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.