Compartilhar via


Como: Adicionar comando roteamento de controle do Windows Forms

CWinFormsView rotas comandos e as mensagens de UI de comando de atualização para o controle de usuário para permitir que lidar com comandos MFC (por exemplo, quadro de itens de menu e botões da barra de ferramentas).

O controle de usuário usa ICommandTarget::Initialize para armazenar uma referência ao objeto de fonte de comando em m_CmdSrc, conforme mostrado no exemplo a seguir. Para usar ICommandTarget Você precisa adicionar uma referência ao mfcmifc80.dll.

CWinFormsView lida com várias das notificações de modo de exibição comuns MFC, encaminhando-os para o controle de usuário gerenciado. Essas notificações incluem o OnInitialUpdate, OnUpdate and OnActivateView métodos de do Interface do IView.

Para criar o aplicativo host do MFC

  1. em em aberto biblioteca de controle do Windows Forms criado no Como: Criar o controle de usuário e host em uma caixa de diálogo.

  2. Adicionar uma referência ao mfcmifc80.dll, que pode ser feito, clicando com o botão direito do mouse no nó do projeto na O gerenciador de soluções selecionandoAdicionar referência e, em seguida, navegando para o Microsoft Visual Studio 8\VC\atlmfc\lib.

  3. em aberto UserControl1.Designer.cs e adicione a seguinte demonstrativo using:

    using namespace Microsoft::VisualC::MFC;
    
  4. Além disso, no UserControl1.Designer.cs, altere esta linha:

    partial class UserControl1
    

    a esta:

    partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
    
  5. Adicionar este sistema autônomo a primeira linha da definição de classe para UserControl1:

    private ICommandSource m_CmdSrc;
    
  6. Adicione as seguintes definições de método a UserControl1 (criaremos a ID do controle MFC na próxima etapa):

    public void Initialize (ICommandSource cmdSrc)
    {
       m_CmdSrc = cmdSrc;
       // need ID of control in MFC dialog and callback function 
       m_CmdSrc.AddCommandHandler(32771, new CommandHandler (singleMenuHandler));
    }
    
    private void singleMenuHandler (uint cmdUI)
    {
       // User command handler code
       System.Windows.Forms.MessageBox.Show("Got FILE_NEW");
    }
    
  7. Abra o aplicativo MFC criado no Como: Criar o controle de usuário e host em uma caixa de diálogo.

  8. Adicionar uma opção de menu que invocará singleMenuHandler.

    Vá para Modo de exibição de recurso (CTRL + deslocar + E), expandir o Menu pasta e clicar duas vezes em seguida, em IDR_MFC02TYPE.Exibe o editor de menu.

    Adicionar uma opção de menu na parte inferior do Modo de exibição menu.Salve o arquivo.

    In O gerenciador de soluções, abra o arquivo recurso.h, copie o valor para a opção de menu que você acabou de adicionar e colar esse valor sistema autônomo o primeiro parâmetro para o m_CmdSrc.AddCommandHandler chamar o projeto de translation from VPE for Csharp Initialize método.

  9. Criar e executar o projeto.

    On the Compilação menu, clicar Criar solução.

    Sobre o Depurar menu, clicar Iniciar sem depuração.

    selecionar a opção de menu que você adicionou.Observe que o método no arquivo .dll é chamado.

Consulte também

Referência

Interface ICommandSource

Interface ICommandTarget

delegate CommandHandler

Outros recursos

Hospedagem de um controle de usuário do Windows formulário sistema autônomo um modo de exibição do MFC