如何:调用 Windows 窗体控件的属性和方法
由于 CWinFormsView::GetControl 返回指向 System.Windows.Forms.Control 的指针,而不是指向 WindowsControlLibrary1::UserControl1 的指针,因此最好添加一个用户控件类型的成员并在 IView::OnInitialUpdate 中将其初始化。 现在,可以使用 m_ViewControl 调用方法和属性。
本主题假定您以前已经学完如何:创建用户控件并将它承载在对话框中和如何:创建用户控件并承载 MDI 视图。
创建 MFC 宿主应用程序
打开在如何:创建用户控件并承载 MDI 视图中创建的 MFC 应用程序。
将下行添加到 MFC02View.h 中 CMFC02View 类声明的 public overrides 节。
gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
添加 OnInitialupdate 的重写。
显示**“属性”窗口 (F4)。 在“类视图”(Ctrl+Shift+C) 中,选择 CMFC02View 类。 在“属性”**窗口中,选择“重写”图标。 将列表向下滚动到 OnInitialUpdate。 单击下拉列表并选择“<添加>”。 在 MFC02View.cpp 中, 确保 OnInitialUpdate 函数的正文如下所示:
CWinFormsView::OnInitialUpdate(); m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl()); m_ViewControl->textBox1->Text = gcnew System::String("hi");
生成并运行该项目。
在**“生成”菜单上,单击“生成解决方案”**。
在**“调试”菜单上,单击“开始执行(不调试)”**。
请注意,文本框现在已初始化。