MFC中如何使用WPF技术

分类: asp.net   出处:iocblog整理  更新时间:2009-03-08   添加到收藏  

    一、介绍

    本文将以一个实例来说明如何将wpf技术集成在基于mfc的应用程序中。这种技术的主要目的是为了增强基于win32/mfc的应用程序的在图形方面的表现能力。本文所提供的演示程序将在mfc对话框架应用程序中显示一个wpf动画时钟。    
    本文需要的开发工具和开发库
    为了建立和运行demo程序,我们需要安装如下的组件:


    1. visual studio 2005 或visual studio 2008
    2. .net framework 3.0 或.net framework3.5

    所需要的平台
    demo程序必须在下面支持.net framework3.0的操作系统平台上运行:

   1. windows vista
   2. windows xp sp2
   3. windows server 2003 sp1

   如果你是一名c++开发人员,并且想使用wpf技术来增强自己的基于win32/mfc应用程序,本文非常适合你。为了能从本文学习到更多的知识,我们需要熟悉vc++/cli, mfc, xaml和c#。但是,如果我们不了解c#或xaml,我们仍然可以通过引用现成的dll来使用wpf程序。  

二、什么是WPF

    WPF是Windows Presentation Foundation的缩写。它是微软.NET Framework3.0的一个子系统。这种技术允许开发人员高效地创建可视化的应用程序,并改善用户体验。由于WPF的发布,使用Windows程序在富控件的设计、开发上更如虎添翼。WPF主要关注一套应用程序服务:用户接口、2D和3D、矢量图、动画、数据绑字、音频,并提供一个在UI和商业逻辑之间的非常清晰的界限。

    WPF API是被管制的代码,但是大多数Win32/MFC程序是非管制的C++代码。按着惯例,WPF API不能通过非常制程序调用。然后,通过使用VC编译器的/clr选项,我们可以建立一个由管制和非管制混合而面的系统。在这个系统中,我们可以使管制和非管制代码无缝地混合在一起。

    有一个要注意的是在C++工程中不允许编译XAML文件。因此,我们必须建立一个包含在本例中所需要的所有XAML而的C# DLL,然后在C++工程中包含这个Dll引用。

    有两种基本的技术可以融合WPF和Win32/MFC代码:

    1. 将WPF放到Win32/MFC程序中:使用这种技术,开发人员可以使用WPF的高级图形能力来渲染Win32/MFC应用程序。

    2.       将Win32/MFC放到WPF中:使用这种技术,开发人员可以在WPF中使用已经存在的

    Win32/MFC控件,并通过一定的机制来传递数据。

    在本文中将采用第一种方法。

   三、     融合Win32/MFC和WPF程序

    上面部分所说的是本例的基本规则,下面在本节中将介绍如何编写具体的实现代码。在本例中,我首先会演示使用XAML和C#建立WPF内容,并在VC++中引用这个DLL。

    本例的目的是建立一个用于设置日期和时间的设置工具,其中动画部分使用WPF实现。程序的其他部分仍然使用MFC实现。

    这个演示程序由两部分组成:一个是MFCHostMPF(由VC++/MFC代码组成),另一个是WPFControls(由XAML和C#代码组成)。这个MFCHostWPF工程将由WPFControls工程所产生的DLL作为一个外部的引用。

[1] [2] 下一页


Tag: WPF ,MFC



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。