Como: Adicionar comando roteamento para o controle Windows Forms
CWinFormsView comandos de rotas e atualização de comando mensagens de interface do usuário para o controle de usuário para permitir lidar com comandos MFC (por exemplo, itens de menu do quadro e botões de barra de ferramentas).
O controle de usuário usa ICommandTarget::Initialize para armazenar uma referência ao objeto de origem de comando na m_CmdSrc, conforme mostrado no exemplo a seguir.Usar ICommandTarget você precisa adicionar uma referência a mfcmifc80. dll no.
CWinFormsViewmanipula várias notificações de modo de exibição MFC comuns, encaminhando-os para o controle de usuário gerenciado.Essas notificações incluem o OnInitialUpdate, OnUpdate e OnActivateView métodos de Interface IView.
Este tópico pressupõe que você concluiu anteriormente Como: criar o controle de usuário e o Host em uma caixa de diálogo e Como: criar a exibição MDI do Host e o controle de usuário.
Para criar o aplicativo host do MFC
Abra a biblioteca de controle do Windows Forms criados no Como: criar o controle de usuário e o Host em uma caixa de diálogo.
Adicionar uma referência a mfcmifc80. dll no, você pode fazer o botão direito do mouse no nó do projeto na Solution Explorer, selecionando Adicionar referência dee, em seguida, navegação 10.0\VC\atlmfc\lib de Visual Studio da Microsoft.
Abra UserControl1.Designer.cs e adicione a seguinte instrução using:
using Microsoft.VisualC.MFC;
Além disso, na UserControl1.Designer.cs, altere esta linha:
partial class UserControl1
Para isso:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
Adicionar esta como a primeira linha de definição de classe de UserControl1:
private ICommandSource m_CmdSrc;
Adicione as seguintes definições de método para UserControl1 (criaremos o 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("Custom menu option was clicked."); }
Abra o aplicativo MFC criado em Como: criar a exibição MDI do Host e o controle de usuário.
Adicionar uma opção de menu irá chamar singleMenuHandler.
Vá para Exibição de recurso (CTRL + SHIFT + E), expanda o Menu pasta e double, em seguida, clique em IDR_MFC02TYPE.Exibe o menu editor.
Adicionar uma opção de menu na parte inferior do modo menu.Observe a identificação da opção no menu do Propriedades janela.Salve o arquivo.
Em Solution Explorer, abra o arquivo Resource.h, copie o valor de identificação para a opção de menu que você acabou de adicionar e colar esse valor como o primeiro parâmetro para o m_CmdSrc.AddCommandHandler chamada do projeto C# Initialize método (substituindo 32771 se necessário).
Criar e executar o projeto.
No menu Build, clique em Build Solution.
Sobre o Debug menu, clique em Start without debugging.
Selecione a opção de menu adicionado.Observe que o método na. dll é chamado.
Consulte também
Referência
Outros recursos
Hospedando um controle de usuário do Windows Forms como um modo de exibição do MFC