WinFormIntegration 示例:演示如何在 MFC 应用程序中承载 WinForms 用户控件

更新:2007 年 11 月

此示例演示如何将 WinForms 用户控件作为 MFC 应用程序中的对话框或视图来承载。

此示例由三个 MFC 扩展 DLL 组成,分别为两个 WinForms 用户控件和一个主 MFC MDI 应用程序:

EXTDLL1 – 使用 CWinFormsView 将 WinFormUserControlView1 用户控件作为 MFC MDI 应用程序中的 CView 窗口来承载。并使用命令传送将消息发送到 WinForms 用户控件。

EXTDLL2 – 演示如何将 WinForms 用户控件作为一个现有 CView 窗口中的静态控件来承载。

EXTDLL3 – 封装 WinForms 用户控件在 MFC 对话框中的不同承载方式,包括使用 CDialogCWinFormsDialog

WinFormUserControl1 – 简单 WinForms 用户控件,其中添加了一些公共控件。

WinFormUserControlView1 – WinForms 用户控件,它实现了 Microsoft::VisualC::MFC::IViewMicrosoft::VisualC::MFC::ICommandTarget 接口以参与 MFC 命令传送和视图通知。这是一个基本文本编辑器(使用一个多行 .NET TextBox 控件),它使用 MFC 来保存和打开文件。

MFC04 – 这是主 MFC MDI 应用程序,它加载 MFC 扩展 DLL 并将它们作为不同的 MFC 文档模板进行添加。

获取示例和安装示例的说明:

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。

生成并运行此示例:

  1. 若要生成项目,只需打开 MFC04.sln,然后从“生成”菜单中选择“生成解决方案”。

  2. 若要运行不同的方案,请启动应用程序,然后从“文件”菜单中选择“新建”。然后选择 CView、CFormView 或 Dialogs 模板:

    1. CView 模板打开一个带有 .NET 多行编辑框的 CWinFormsView,您可以对其进行编辑。您还可以通过 MFC 的“保存”和“打开”菜单项将这一文本保存到文件中并再次加载它。可以通过选择 WinForms StatusStrip 中的“保存更改”下拉按钮从 WinForms 中调用“保存”功能。选择 MFC 的“CViewCmds”->“Command1”菜单项将更新 StatusStrip(表明 MFC 命令传送到承载的 WinForms 用户控件)中的文本。

    2. CFormView 模板与以上模板是相同的 WinForms 用户控件,唯一的区别是它在 CFormView 资源中承载。此模板仅演示承载代码,不实现“保存”和“打开”功能。

    3. Dialogs 模板是一个演示在以下情况中承载 WinForms 用户控件的视图:在 CDialog 调用的模式中、在 CDialog 调用的无模式中、作为 CWinFormsDialog 调用的模式以及作为 CWinFormsDialog 调用的无模式。CWinFormsDialog 示例演示了如何将 MFC 函数挂接到 WinForms 控件事件。这些示例还演示了如何通过 CStringSystem::String^ 的转换运算符将字符串从托管传递回本机。

要求

支持的操作系统:Windows Server 2003、Windows XP

请参见

参考

MFC WinForms 示例