结合direct3d9.0与mfc【注:翻译技术文档】

结合direct3d9.0与mfc【注:翻译技术文档】

ID:8849138

大小:402.76 KB

页数:13页

时间:2018-04-09

结合direct3d9.0与mfc【注:翻译技术文档】_第1页
结合direct3d9.0与mfc【注:翻译技术文档】_第2页
结合direct3d9.0与mfc【注:翻译技术文档】_第3页
结合direct3d9.0与mfc【注:翻译技术文档】_第4页
结合direct3d9.0与mfc【注:翻译技术文档】_第5页
资源描述:

《结合direct3d9.0与mfc【注:翻译技术文档】》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于VisualStudio.Net(7.0)环境结合Direct3D9.0与MFC的应用程序开发创作于2003年3月16日,发表在www.moon-labs.com[美]FrankLuna著石立兴翻译Tuesday,August31,2010(注:原著的Direct3D8.1版本创作于2002年4月8日,在网页http://www.gamedev.net/reference/articles/article1778.asp上可以查看)1.1简介在结合DirectXAPI(API:ApplicationProgram

2、mingInterface应用程序编程接口)和MFC(MFC:MicrosoftFoundationClasses微软基础类库)的应用程序开发中常常会遇到一些麻烦。虽然DirectXSDK(SDK:SoftwareDevelopmentKitAPI软件开发包)提供了一些在MFC架构上实现DirectX运用的例子,然而其中没有一个是使用document/view结构或者应用程序向导的方式实现的。这篇文章将一步一步地向读者展现,在VisualStudio.Net中,如何使用MFC的程序设计向导以及document/vie

3、w结构,在MFC架构上创建一个Direct3D9.0的应用程序。当然,我们假设读者已经有一些Direct3D和MFC的编程经验了,只不过尚未尝试如何将它们结合起来使用。我们将创建的这个项目是一个简单的例子;它将向一个网格数据结构中载入一个茶壶,并且使它绕着Y轴旋转。最终绘制的结果将如下图所示,当然,程序中的茶壶是运动的。图1:本文中所创建的应用程序运行时的截图1.1创建项目为了让您能看清楚每一个步骤,本文将以较慢的速度展开论述。首先,我们将在VisualStudio.Net(VS7)中创建一个新项目。在下图所示的对话

4、框中选择MFCApplication(MFC应用程序)的图标,键入项目名称,如“Direct3D9MFC”,然后点击“OK”按钮。图2:为该项目选择一个MFC应用程序模板在接下来的对话框中,MFC应用程序设计向导允许您配置将要创建的应用程序。选择左侧的ApplicationType标签,如图3所示。然后选择程序类型为Singledocument,确保Document/Viewarchitecturesupport选项已勾选。剩下的设置保留其默认值,最后点击“Finish”按钮,完成应用程序的创建。图3:设置并创建应用

5、程序。通过该对话框指定您将创建的程序的基本属性。在本例程中,我们需要一个单文档接口并且将使用文档/视图结构在单击“Finish”按钮后,程序模板就被成功创建了。当然,为了确保万无一失,在继续下一步之前还是建议您编译,生成,执行一下您的项目。下面,在我们将Direct3D结合到MFC之前,应该先将Direct3D函数库“d3d9.lib”和“d3dx9.lib”链接到我们的项目中。此外,为了使用计时函数,我们还需要将“winmm.lib”链接进来。在VS7中,您可以用如下方式链接函数库:点击菜单项Project→Pro

6、perties→Linker→InputFolder,然后在如图4所示的输入框中键入函数库的名称:图4:将“d3d9.lib”、“d3dx9.lib”及“winmm.lib”链接到项目中1.1结合Direct3D与MFC为了将Direct3D结合到MFC中,我们让CDirect3D9MFCView(派生于CView)包含Direct3D相关的一些接口。之所以这样,是因为CDirect3D9MFCView是负责绘制数据的,它需要直接访问Direct3D的功能函数来绘制3D模型。1.1.1为CDirect3D9MFCVi

7、ew添加成员变量首先,我们将以下变量添加到CDirect3D9MFCView类中:#includeclassCDirect3D9MFCView:publicCView{...private:IDirect3DDevice9*_device;D3DPRESENT_PARAMETERS_d3dpp;ID3DXMesh*_teapot;};对于刚添加的前两个变量类型,_device和_d3dpp,您应该是不陌生了。作为Direct3D的基本数据类型,在准备阅读这篇文章前,您对它们的作用和用法应该都有所认识

8、。为此,我就不再对它们作更细致的说明了。第三个变量,_teapot,是一个网格数据结构,用于存储该示例程序所要绘制的茶壶的几何信息。注意:记得在定义CDirect3D9MFCView类的文件的开头包含“d3dx9.h”头文件。注意CDirect3D9MFCView类的构造函数和析构函数如下:CDirect3D9MFCView::CDirect3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。