如何:调用 Windows 窗体控件的属性和方法

由于 CWinFormsView::GetControl 返回指向 System.Windows.Forms.Control 的指针,而不是指向 WindowsControlLibrary1::UserControl1 的指针,因此最好添加一个用户控件类型的成员并在 IView::OnInitialUpdate 中将其初始化。 现在,可以使用 m_ViewControl 调用方法和属性。

本主题假定您以前已经学完如何:创建用户控件并将它承载在对话框中如何:创建用户控件并承载 MDI 视图

创建 MFC 宿主应用程序

  1. 打开在如何:创建用户控件并承载 MDI 视图中创建的 MFC 应用程序。

  2. 将下行添加到 MFC02View.h 中 CMFC02View 类声明的 public overrides 节。

    gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;

  3. 添加 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");
    
  4. 生成并运行该项目。

    在**“生成”菜单上,单击“生成解决方案”**。

    在**“调试”菜单上,单击“开始执行(不调试)”**。

    请注意,文本框现在已初始化。

请参见

其他资源

以 MFC 视图的形式承载 Windows 窗体用户控件