Partilhar via


Como expor um suplemento em um menu de atalho

Os suplementos do Visual Studio foram substituídos no Visual Studio 2013. Você deve atualizar seus suplementos para as extensões VSPackage. Para obter mais informações sobre atualização, consulte Perguntas frequentes: convertendo suplementos em extensões VSPackage.

Apesar de o modelo de automação Visual Studio facilitar a colocação de comandos de suplemento em menus de nível superior, como no menu Ferramentas, você também pode adicionar comandos a menus de atalho e a submenus.

Para fazer isso, você deve usar o modelo de objeto Barra de Comandos do Microsoft Visual Studio para definir explicitamente o menu de atalho e o submenu de destino. Você deve chamar o método de Visual StudioAddControl .

Os menus de atalho são semelhantes a outros menus do Visual Studio. Para acessá-lo, aponte para uma seta para baixo em um menu suspenso ou clique com o botão direito do mouse em um item no ambiente de desenvolvimento integrado (IDE).

Para adicionar um comando a um menu de atalho (ou qualquer menu ou barra de ferramentas), primeiro você deve saber o nome do comando. Você pode encontrá-lo pesquisando pelo nó Teclado na caixa de diálogo Opções no menu Ferramentas.

O procedimento a seguir demonstra como adicionar um comando de suplemento ao menu de atalho da Lista de Tarefas.

Dica

As caixas de diálogo e os comandos de menu que você vê podem diferir das descritas no Help dependendo de suas configurações ativas ou de edição.Esses procedimentos foram desenvolvidos com as Configurações Gerais de Desenvolvimento ativas.Para alterar as configurações, escolha Importar e ExportarConfigurações no menu de Ferramentas.Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.

Para adicionar um comando de suplemento a um menu de atalho

  1. No menu Arquivo, aponte para Novo e clique em Projeto.

  2. Na caixa de diálogo Novo Projeto, expanda Outros tipos de projetos, clique em Extensibilidade e clique em Suplemento do Visual Studio no painel de Modelos.

    Nomeie o suplemento ContextCmd e clique em OK para iniciar o Assistente de Suplemento do Visual Studio.

  3. Selecione a opção para criar uma interface de usuário para o suplemento marcando a caixa Deseja criar uma interface de usuário de barra de comandos para o suplemento?.

    Isso adiciona algum código de interface de usuário ao método OnConnection. Ele também adiciona o método de Exec, que manipula o evento quando alguém clica no comando do suplemento, e o método de QueryStatus, que fornece informações sobre o status do suplemento.

  4. Substitua o código pelo seguinte:

    Imports System
    Imports Microsoft.VisualStudio.CommandBars
    Imports Extensibility
    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Connect
    
        Implements IDTExtensibility2
        Implements IDTCommandTarget
    
        Dim _applicationObject As DTE2
        Dim _addInInstance As AddIn
    
        Dim cmdBarCtl As CommandBarControl
    
        Public Sub New()
        End Sub
    
        Public Sub OnConnection(ByVal application As Object, ByVal _
          connectMode As ext_ConnectMode, ByVal addInInst As Object, _
          ByRef custom As Array) Implements _
          IDTExtensibility2.OnConnection
            Dim cmd As Command
            Dim cmdBar As CommandBar
    
            _applicationObject = CType(application, DTE2)
            _addInInstance = CType(addInInst, AddIn)
    
            Try
                If CType(ext_ConnectMode.ext_cm_AfterStartup Or _
                  ext_ConnectMode.ext_cm_Startup, Boolean) Then
                    ' If the command does not exist, add it.
                    If cmd Is Nothing Then
                        cmd = _applicationObject.Commands. _
                          AddNamedCommand(_addInInstance, _
                          "newCmd", "newCmd", "Runs the add-in.", _
                          True, 59, Nothing, _
                          vsCommandStatus.vsCommandStatusSupported _
                          Or vsCommandStatus.vsCommandStatusEnabled)
                    End If
    
                    ' Reference the Task List shortcut menu.
                    cmdBar = CType(_applicationObject. _
                      CommandBars.Item("Task List"), _
                      Microsoft.VisualStudio.CommandBars.CommandBar)
    
                    ' Add a command to the Task List's shortcut menu.
                    cmdBarCtl = CType(cmd.AddControl(cmdBar, _
                      cmdBar.Controls.Count + 1), _
                      Microsoft.VisualStudio.CommandBars. _
                      CommandBarControl)
                    cmdBarCtl.Caption = "A New Command"
                End If
            Catch e As System.Exception
                System.Windows.Forms.MessageBox.Show(e.ToString)
            End Try
        End Sub
    
        Public Sub OnDisconnection(ByVal disconnectMode As _
          ext_DisconnectMode, ByRef custom As Array) Implements _
          IDTExtensibility2.OnDisconnection
            Try
                ' Delete the command bar control from the 
                   ' shortcut menu.
                If Not (cmdBarCtl Is Nothing) Then
                    cmdBarCtl.Delete()
                End If
            Catch e As System.Exception
                System.Windows.Forms.MessageBox.Show(e.ToString)
            End Try
        End Sub
    
        Public Sub OnAddInsUpdate(ByRef custom As Array) Implements _
          IDTExtensibility2.OnAddInsUpdate
        End Sub
    
        Public Sub OnStartupComplete(ByRef custom As Array) Implements _
          IDTExtensibility2.OnStartupComplete
        End Sub
    
        Public Sub OnBeginShutdown(ByRef custom As Array) Implements _
          IDTExtensibility2.OnBeginShutdown
        End Sub
    
        Public Sub QueryStatus(ByVal commandName As String, ByVal _
          neededText As vsCommandStatusTextWanted, ByRef status As _
          vsCommandStatus, ByRef commandText As Object) Implements _
          IDTCommandTarget.QueryStatus
            If commandName = "ContextCmd.Connect.newCmd" Then
                status = CType(vsCommandStatus.vsCommandStatusEnabled _
                  + vsCommandStatus.vsCommandStatusSupported, _
                  vsCommandStatus)
            Else
                status = vsCommandStatus.vsCommandStatusUnsupported
            End If
        End Sub
    
        Public Sub Exec(ByVal commandName As String, ByVal _
          executeOption As vsCommandExecOption, ByRef varIn As _
          Object, ByRef varOut As Object, ByRef handled As Boolean) _
          Implements IDTCommandTarget.Exec
            handled = False
            If executeOption = vsCommandExecOption. _
              vsCommandExecOptionDoDefault Then
                If commandName = "ContextCmd.Connect.newCmd" Then
                    handled = True
                    System.Windows.Forms.MessageBox.Show("Add-in _
                      running...")
                End If
            End If
        End Sub
    End Class
    
  5. Adicione o código que você deseja executar quando o comando é clicado no procedimento Exec.

  6. Compile o suplemento e execute-o.

  7. Exiba a Lista de Tarefas clicando em Lista de Tarefas no menu de Modo de Visualização.

  8. No menu de Ferramentas, clique em Gerenciador de Suplementos.

  9. Ative o suplemento ContextCmd marcando a caixa ao lado dele, em Gerenciador de Suplementos.

  10. Clique com o botão direito do mouse na Lista de Tarefas.

    O comando do suplemento ContextCmd aparece no menu de atalho.

Consulte também

Tarefas

Como controlar suplementos usando o Gerenciador de Suplementos

Como criar um suplemento

Instruções passo a passo: criando um assistente

Conceitos

Exibindo suplementos em barras de ferramentas e menus

Registro de suplementos

Gráfico do modelo de objetos automation

Outros recursos

Criando suplementos e assistentes

Comandos e opções do Visual Studio