Partilhar via


Como: Adicionar um comando de roteamento para o controle Windows Forms

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

O controle de usuário usa ICommandTarget::Initialize para armazenar uma referência ao objeto de origem do comando na m_CmdSrc, conforme mostrado no exemplo a seguir. Para usar ICommandTarget você precisará adicionar uma referência a mfcmifc80. dll no.

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

Este tópico pressupõe que você já respondeu Como: Criar o controle de usuário e o Host em uma caixa de diálogo e Como: Criar o modo de exibição de controle de usuário e o Host MDI.

Para criar o aplicativo host do MFC

  1. Abra a biblioteca de controle do Windows Forms criado na Como: Criar o controle de usuário e o Host em uma caixa de diálogo.

  2. Adicione uma referência a mfcmifc80. dll no, o que pode ser feito clicando com o botão direito no nó do projeto em Solution Explorer, selecionando Adicionar referência dee, em seguida, navegação 10.0\VC\atlmfc\lib de Visual Studio da Microsoft.

  3. Abra UserControl1.Designer.cs e adicione a seguinte instrução using:

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

    partial class UserControl1
    

    Para isso:

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

    private ICommandSource m_CmdSrc;
    
  6. Adicione as seguintes definições de método para UserControl1 (criaremos a identificação 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("Custom menu option was clicked.");
    }
    
  7. Abra o aplicativo MFC que você criou na Como: Criar o modo de exibição de controle de usuário e o Host MDI.

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

    Vá para Exibição de recurso (CTRL + SHIFT + E), expanda o Menu pasta e double, em seguida, clique na IDR_MFC02TYPE. Isso exibe o editor de menu.

    Adicionar uma opção de menu na parte inferior do Exibir menu. Observe a identificação da opção no menu de Propriedades janela. Save the file.

    Em Solution Explorer, abra o arquivo Resource.h, a opção de menu que você acabou de adicionar o valor da ID de copiar e colar esse valor como o primeiro parâmetro para o m_CmdSrc.AddCommandHandler o C# do projeto de chamada Initialize método (substituindo 32771 se necessário).

  9. Build and run the project.

    Sobre o Build menu, clique em Build Solution.

    Sobre o Debug menu, clique em Start without debugging.

    Selecione a opção de menu que você adicionou. Observe que o método na. dll é chamado.

Consulte também

Referência

ICommandSource Interface

ICommandTarget Interface

CommandHandler Delegate

Outros recursos

Que hospeda um controle de usuário do Windows Forms, como um modo de exibição do MFC