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
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.
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.
em aberto UserControl1.Designer.cs e adicione a seguinte demonstrativo using:
using namespace Microsoft::VisualC::MFC;
Além disso, no UserControl1.Designer.cs, altere esta linha:
partial class UserControl1
a esta:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
Adicionar este sistema autônomo a primeira linha da definição de classe para UserControl1:
private ICommandSource m_CmdSrc;
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"); }
Abra o aplicativo MFC criado no Como: Criar o controle de usuário e host em uma caixa de diálogo.
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.
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.