使用C++来开发WPF,主要是如何在MFC(Win32)的窗口中HostWPF的Page。下面我就做个详细的介绍。
1创建工程
创建工程, 由于MFC的Wizard会生成很多用不到的代码,所以我准备从一个空的工程开始创建一个MFC的工程。
1) 打开VS2008,菜单File->New->Projects…, 左面选择Visual C++->Win32,右面选择Win32 ConsoleApplication,给工程起个名字CTest_WPF, Ok进入下一步。
2) 工程基本配置,在Application Setting中选择Console Application和MFC。Finish进入下一步。
3) 修改工程,使工程变成MFC Windows程序。
Ø 删除CTest_WPF.cpp和CTest_WPF.h文件
Ø 添加CWinApp派生类Test_WPFApp, 在工程上点击鼠标右键,Add=>Class…
在弹出的对话框中,左边选择MFC,右面选择MFC Class,点击Add进入下一步
在弹出的对话框中输入类名: CTest_WPFApp, 基类选择CWinApp
Ø 用同上的方法添加CWnd派生类,Class name为CTest_WPFMainWnd,Base class为CWnd。
Ø 修改工程属性。将属性中的System->SubSystem从Concole改成Windows。
到这一步,一个基本的MFC程序所需要的两个类CWinApp和CWnd派生类就添加完了。我们的程序可以顺利编译通过,但是还不能运行,请继续看下一步。
4) 为CTest_WPFMainWnd添加代码;
添加创建窗口函数,函数如下:
头文件:
// 创建窗口函数
BOOL CreateMainWnd(const CRect &rect, DWORD dwStyle, DWORD dwStyleEx);
源文件:
BOOL CTest_WPFMainWnd::CreateMainWnd(const CRect &rect, DWORD dwSty