结合Direct3D9.0与MFC【注:翻译技术文档】.docxVIP

结合Direct3D9.0与MFC【注:翻译技术文档】.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结合Direct3D9.0与MFC【注:翻译技术文档】

基于Visual Studio.Net(7.0)环境 结合Direct3D 9.0与MFC的应用程序开发 创作于2003年3月16日,发表在 [美]Frank Luna著 石立兴 翻译 Tuesday, August 31, 2010 (注:原著的Direct3D 8.1版本创作于2002年4月8日,在网页/reference/articles/article1778.asp上可以查看) 1.1 简介 在结合DirectX API(API:Application Programming Interface应用程序编程接口)和MFC(MFC:Microsoft Foundation Classes微软基础类库)的应用程序开发中常常会遇到一些麻烦。虽然DirectX SDK(SDK:Software Development Kit API软件开发包)提供了一些在MFC架构上实现DirectX运用的例子,然而其中没有一个是使用document/view结构或者应用程序向导的方式实现的。这篇文章将一步一步地向读者展现,在Visual Studio .Net中,如何使用MFC的程序设计向导以及document/view结构,在MFC架构上创建一个Direct3D 9.0的应用程序。当然,我们假设读者已经有一些Direct3D和MFC的编程经验了,只不过尚未尝试如何将它们结合起来使用。 我们将创建的这个项目是一个简单的例子;它将向一个网格数据结构中载入一个茶壶,并且使它绕着Y轴旋转。最终绘制的结果将如下图所示,当然,程序中的茶壶是运动的。 图1:本文中所创建的应用程序运行时的截图 1.2 创建项目 为了让您能看清楚每一个步骤,本文将以较慢的速度展开论述。首先,我们将在Visual Studio .Net(VS7)中创建一个新项目。在下图所示的对话框中选择MFC Application(MFC应用程序)的图标,键入项目名称,如“Direct3D9MFC”,然后点击“OK”按钮。 图2:为该项目选择一个MFC应用程序模板 在接下来的对话框中,MFC应用程序设计向导允许您配置将要创建的应用程序。选择左侧的Application Type 标签,如图3所示。然后选择程序类型为Single document,确保Document/View architecture support选项已勾选。剩下的设置保留其默认值,最后点击“Finish”按钮,完成应用程序的创建。 图3:设置并创建应用程序。通过该对话框指定您将创建的程序的基本属性。在本例程中,我们需要一个单文档接口并且将使用文档/视图结构 在单击“Finish”按钮后,程序模板就被成功创建了。当然,为了确保万无一失,在继续下一步之前还是建议您编译,生成,执行一下您的项目。 下面,在我们将Direct3D结合到MFC之前,应该先将Direct3D函数库“d3d9.lib”和“d3dx9.lib”链接到我们的项目中。此外,为了使用计时函数,我们还需要将“winmm.lib”链接进来。在VS7中,您可以用如下方式链接函数库:点击菜单项Project→Properties→Linker→Input Folder,然后在如图4所示的输入框中键入函数库的名称: 图4:将“d3d9.lib”、“d3dx9.lib”及“winmm.lib”链接到项目中 1.3 结合Direct3D与MFC 为了将Direct3D结合到MFC中,我们让CDirect3D9MFCView(派生于CView)包含Direct3D相关的一些接口。之所以这样,是因为CDirect3D9MFCView是负责绘制数据的,它需要直接访问Direct3D的功能函数来绘制3D模型。 1.3.1 为CDirect3D9MFCView 添加成员变量 首先,我们将以下变量添加到CDirect3D9MFCView 类中: #include d3dx9.h class CDirect3D9MFCView : public CView { ... private: IDirect3DDevice9* _device; D3DPRESENT_PARAMETERS _d3dpp; ID3DXMesh* _teapot; }; 对于刚添加的前两个变量类型,_device 和 _d3dpp,您应该是不陌生了。作为Direct3D的基本数据类型,在准备阅读这篇文章前,您对它们的作用和用法应该都有所认识。为此,我就不再对它们作更细致的说明了。第三个变量,_teapot,是一个网格数据结构,用于存储该示例程序所要绘制的茶壶的几何信息。 注意:记得在定义CDirect3D9MFCView 类的文件的开头包含“d3dx9.h”头文件。 注意CDirect3D9MFCView 类

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档