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
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.
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.
Abra UserControl1.Designer.cs e adicione a seguinte instrução using:
using Microsoft.VisualC.MFC;
Além disso, em UserControl1.Designer.cs, altere esta linha:
partial class UserControl1
Para isso:
partial class UserControl1 : System.Windows.Forms.UserControl, ICommandTarget
Adicionar este como a primeira linha da definição de classe para UserControl1:
private ICommandSource m_CmdSrc;
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."); }
Abra o aplicativo MFC que você criou na Como: Criar o modo de exibição de controle de usuário e o Host MDI.
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).
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
Outros recursos
Que hospeda um controle de usuário do Windows Forms, como um modo de exibição do MFC