- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用MFC构造DirectX应用框架
用MFC构造DirectX应用框架 Microsoft DirectX SDK是开发基于 Windows 平台游戏的一个软件开发工具,其功能主要包括在五个组件中 :DirectDraw DirectSound DirectPlay Direct3D和DirectInput,每个组件都具不中的功能:DirectDraw使用直接写存技术加快游戏的动画速度;
DirectSound控制游戏声音的合成和播放;
DirectPlay使游戏具有网络多人游戏功能;
Direct3D让程序员更方便地开发三维游戏;
DirectInput使游戏支持更多的办入设备(现在只支持游戏杆,鼠标和键盘)。
可以说DirectX SDK提供了编写一个游戏 所必须的功能及基层函数,所以大多Windows游戏都使用了DirectX SDK.
MFC(Microsoft Foundation Class)类库是Microsoft Visual C++中提供的一个功能强大的 Windows 应用程序开发类, 使用这些类我们可以避免和繁琐的Windows API打交道,而且在 Visual C++中我们还可以利用ClassWizard 对MFC 类进行Windows 消息映射,所以如果能用MFC 类库来开发DirectX SDK的应用程序,至少有以下几个好处:
可以用VC++的ClassWizard方便地对Windows消息进行映射;
增加了程序的可读性,并且可以用VC++的 ClassView方便的管理所用的类;
增加程序代码的可重用性, 可以在原有的基础上开发出功能更强大的应用程序;
更进一步,如果我们能开发出一个能生成DirectX SDK应用程序基本框架的VC++的工程向导,则为以后开发DirectX SDK应用于程序提供及大的方便。下面,我们将用Visual C++先编写一个DirectX SDK应用程序的基本框架。
二 编写 DirectX SDK 应用程序基本框架
我们按下列步骤建立一个DirectX SDK 程序的基本框架:
1 用Visual C ++的MFC App Wizard (EXE) 生成一个基本对话框的工程文件,取名为DirectX,在向导第二步时取消About Box 的复选框,然后按Finish按钮。
2 删除在DirectX 工程目录中生成的DirectXDlg.H两个文件,并在Visual C++的File View中删除以上两个文件,按CTRL+W启动ClassWizard删除CdirectXDlg类,然后在ResourseView中删除IDD_DIRECTX_DIALOG.
3 建立两个文件DirectXWnd.H(这两个文件在本文的附录中,请注意不要删除有“//{”和“//}”之间的内容,否则将不能使用ClassWizard对窗口信息进行映射),并把它们加入到工程中。这时工程中将加入一个基于CWnd的CdirectXWnd类,这是我们的DirectX应用程序的基类。CdirectXWnd类创建一个窗口并生成一个与该窗口相关联的DirectDraw对象lpDD,同时还生成一个显示平面(lpFrontBuffer)和一个显示缓冲平面(lpBackBuffer),该类使用了几个虚函数,必要时其派生类可以覆盖这些函数。
4 打开DirectX.CPP,把 # include”DirectXDLG.h”改为 #include “DirectXWnd.H”然后把CdirectXApp::InitInstance()函数修改如下,其中黑体字为要增加的内容:
BOOL CdirectXApp::initlnstance()
{
#ifdef_AFXDLL
Enable3dControls();//Call this when using MFC in a shared DLL
#else
Enable3dConteolsStatic();//Call this when linking to MFC
Statically
#endif
CdirectXWnd *pWnd =new CdirectXWnd();
PWnd-Create(“DirectXWnd Test”);
m-pMainWnd =pWnd;
pWnd-UpdateWindow();
pWnd-SetFocus();
if (pWnd-initializeGame(640,480,8)= =FALSE){
pWnd-DestroyWindow();
return FALSE;
}
MSG msg;
White(1)
{
if(PeekMessage(msg,NULL,0,0,PM-NOREMOVE)) {
if( !GetMessage(msg,NULL,0,0))
r
您可能关注的文档
- 生蚝含镉多少才算超标.doc
- 生鲜解冻方法和冷却方法基准.doc
- 生鸡蛋比熟鸡蛋营养.docx
- 用2015年茂名二模历史卷.doc
- 用300kPa(绝压)的饱和水蒸气在列管式换热器中将对二.doc
- 用3Dsmax与Photoshop做立体图标设计.doc
- 用3DSMAX制作动态水波效果.doc
- 用3DSMAX制作月球围绕地球转动画杨荟.doc
- 用89C2051自制高精度三路倒计时器.doc
- 用A1样式记号引用单元格和单元格区域.doc
- 2025年鸡西市麻山区公益性岗位招聘8人(公共基础知识)测试题附答案.docx
- 杭州之江湾股权投资基金管理有限公司招聘参考题库附答案.docx
- 2026江苏辖区农村商业银行常熟农商银行校园招聘200人(公共基础知识)测试题附答案.docx
- 2025年中国石油新疆油田分公司秋季高校毕业生招聘360人(公共基础知识)综合能力测试题附答案.docx
- 2023年攀枝花市直属机关遴选公务员笔试真题汇编附答案解析(夺冠).docx
- 2026广发银行太原分行校园招聘(公共基础知识)测试题附答案.docx
- 2025四川成都医学院招聘事业编制辅导员10人(公共基础知识)测试题附答案.docx
- 2026年毛概期末考试试题库必考题.docx
- 2025年合肥市某国有企业2025年岗位外包招聘(公共基础知识)测试题附答案.docx
- 2026年重庆青年职业技术学院单招(计算机)测试模拟题库附答案.docx
原创力文档


文档评论(0)