Como chamar propriedades e métodos do controle dos Windows Forms
Como o CWinFormsView::GetControl retorna um ponteiro para System.Windows.Forms.Control, e não um ponteiro para WindowsControlLibrary1::UserControl1
, é aconselhável adicionar um membro do tipo de controle do usuário e inicializá-lo em IView::OnInitialUpdate. Agora você pode chamar métodos e propriedades usando m_ViewControl
.
Este tópico pressupõe que você tenha concluído anteriormente Como criar o controle de usuário e o host em uma caixa de diálogo e Como criar o controle de usuário e hospedar uma exibição MDI.
Para criar o aplicativo host do MFC
Abra o aplicativo MFC criado em Como criar o controle de usuário e hospedar uma exibição MDI.
Adicione a linha a seguir à seção de substituições públicas da declaração de classe
CMFC02View
em MFC02View.h.gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
Adicione uma substituição para OnInitialupdate.
Exiba a janela Propriedades (F4). No Modo de Exibição de Classe (CTRL+SHIFT+C), selecione a classe CMFC02View. Na janela Propriedades, selecione o ícone Substituições. Role para baixo a lista de OnInitialUpdate. Clique na lista suspensa e selecione <Adicionar>. Em MFC02View.cpp. verifique se o corpo da função OnInitialUpdate é como segue:
CWinFormsView::OnInitialUpdate(); m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl()); m_ViewControl->textBox1->Text = gcnew System::String("hi");
Compile e execute o projeto.
No menu Compilar, clique em Compilar Solução.
No menu Depurar, clique em Iniciar sem depurar.
Observe que a caixa de texto agora está inicializada.
Confira também
Hospedando um controle de usuário do Windows Forms como uma exibição do MFC