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 对话框中的不同承载方式,包括使用 CDialog 和 CWinFormsDialog。
WinFormUserControl1 – 简单 WinForms 用户控件,其中添加了一些公共控件。
WinFormUserControlView1 – WinForms 用户控件,它实现了 Microsoft::VisualC::MFC::IView 和 Microsoft::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 速成版,所有示例都位于联机位置。
生成并运行此示例:
若要生成项目,只需打开 MFC04.sln,然后从“生成”菜单中选择“生成解决方案”。
若要运行不同的方案,请启动应用程序,然后从“文件”菜单中选择“新建”。然后选择 CView、CFormView 或 Dialogs 模板:
CView 模板打开一个带有 .NET 多行编辑框的 CWinFormsView,您可以对其进行编辑。您还可以通过 MFC 的“保存”和“打开”菜单项将这一文本保存到文件中并再次加载它。可以通过选择 WinForms StatusStrip 中的“保存更改”下拉按钮从 WinForms 中调用“保存”功能。选择 MFC 的“CViewCmds”->“Command1”菜单项将更新 StatusStrip(表明 MFC 命令传送到承载的 WinForms 用户控件)中的文本。
CFormView 模板与以上模板是相同的 WinForms 用户控件,唯一的区别是它在 CFormView 资源中承载。此模板仅演示承载代码,不实现“保存”和“打开”功能。
Dialogs 模板是一个演示在以下情况中承载 WinForms 用户控件的视图:在 CDialog 调用的模式中、在 CDialog 调用的无模式中、作为 CWinFormsDialog 调用的模式以及作为 CWinFormsDialog 调用的无模式。CWinFormsDialog 示例演示了如何将 MFC 函数挂接到 WinForms 控件事件。这些示例还演示了如何通过 CString 到 System::String^ 的转换运算符将字符串从托管传递回本机。
要求
支持的操作系统:Windows Server 2003、Windows XP