摘 要:把directxsdk封装在mfc的类中,建立一个directx应用程序框架.
关键词:mfc类库,directxsdk一. mfc类库与directxsdk
microsoft directx sdk是开发基于 windows平台游戏的一个软件开发工具,其主要功能主要包括在五个组件中: directdraw. directsound.directplay.direct3d与directinput,每个组件都具不同的功能:
.directdraw使用直接写存技术加快游戏的动画速度;
.direcsound控制游戏声音的合成与播放; .directplay使游戏具有网络多人游戏功能; .direct3d让程序员更方便地开发三维游戏: .directinput使游戏支待更多的输入设备(现在只支持游戏杆.鼠标与键盘).可以说directxsdk提供了编写一个游戏所必须的功能及基层函数,所以大多windows游戏都使用了ditrectxsdk.
mfc(microsoft foundation class)类库是microsoft visual c++中提供的一个功能强大的windows应用程序开发类,使用这些类我们可以避免与繁琐的windows apl打交道,而且在visualc++中我们还可以利用c1asswizard对mfc类进行windows消息映射,所以如果能用mfc类库来开发directxsdk的应用程序,至少有以下几个好处:
1.可以用 vc++的 c1asswizard方便地对windows消息进行映射;
2.增加了程序的可读性,并且可以用vc++的classview方便的管理所用的类; 3.增加程序代码的可重用性,可以在原有的基础上开发出功能更强大的应用程序更进一步,如果我们能开发出一个能生成directxsdk应用程序基本框架的vc++的工程向导,则为以后开发directx sdk应用程序提供及大的方便.下面,我们将用visua1 c++5.0先编写一个directxsdk应用程序的基本框架.二.编写directxsdk应用程序基本框架
我们按下列步骤建立一个勘rectxsdk程序的基本框架:
1.用 visual c++的 mfc appwizard(exe)生成一个基于对话框的工程文件,取名为directx,在向导第二步时取消about box的复选框,然后按finish按钮.
2.删除在directx工程目录中生成的directxdlg.cpp与directxdlg.h两个文件,并在visual c++的fileview中删除以上两个文件,按ctrl十w启动classwizard删除cdirectxdlg类,然后在resourceview中删除 idd_directx_ dialog. 3.建立两个文件 directxwnd.cpp与directxwnd.h(这两个文件在本文的附录中,请注意不要删除有“\\{”与“\\}”之间的内容,否则将不能使用classwizard对窗口消息进行映射),并把它们加入到工程中.这时工程中将增加一个基于cwnd的cdirectxwnd类,这是我们的dirrectx应用程序的基类.cdirectxwnd类创建一个窗口并生成一个与该窗口相关联的directdraw对象lpdd,同时还生成一个显示平面(lpfrontbuffer)与一个显示缓冲平面(lpbackbuffer),该类使用了几个虚函数,必要时其派生类可以覆盖这些函数. 4.打开directx.cpp,把# include“directxdlg.h”改为#include“directxwnd.h”然后把cdirectxapp::initinstance()函数修改如下,其中黑体字为要增加的内容:bool cdirectxapp::lnitlnstnnce()
{ #ifdef _afxdll enable3dcontrols();//call this when using mfc in a shared dll #else enable3dcontrolsstatic();//call this when linking to mfc statically #endifcdirectxwnd *pwnd=new cdirectxwnd();
... 下一页