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

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

本主题假设你之前已完成了如何:创建用户控件并将它承载在对话框中以及如何:创建用户控件并承载 MDI 视图

创建 MFC 主机应用程序

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

  2. 将以下行添加到 MFC02View.h 中 CMFC02View 类声明的公共替代部分。

    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 窗体用户控件