当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 作者:广西职业技术学院电算中心(530227)谭文洪 摘 要:把DirectXSDK封装在MFC的类中,建立一个DirectX应用程序框架。
 

 

 ·openglstep    »显示摘要«
    摘要: 第六、坐标变换 opengl中从三维场景到屏幕图形屏幕向外,x+从左到右,y+轴从下到上,是右手笛卡尔坐标系统。我们用这个坐标系来描述物体及光源的位置。 将物体放到场景中也就是将物体平移到特定位置、旋转一定角度,这些操作就是坐标变换。opengl中提供了gltranslate*/glrotate*/glscale*三条坐标变换命令,利用opengl的矩阵运算命令,则可以实现任意复杂的坐标......
 ·openglstepbystep(4)    »显示摘要«
    摘要:条专门的指令才会开始处理它们,并将 建立管道 根据需要向管道中写入数据和指令 关闭管道 在,这个管道就是opengl着色环境——(opengl render context)简称rc。因此建立管道实际上就是获取一个可用的rc。 而在windows的gdi系统中进行图形显示是通过图形设备上下文——(device context)简称dc——进行的。所以获取rc就是: ①先......


用MFC构造DirectX应用框架

作者:广西职业技术学院电算中心(530227)谭文洪 【程序编程相关:TCP协议规范

【推荐阅读:TELNET协议规范

【扩展信息:SMTP服务扩展

摘  要:把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

    #endif

    cdirectxwnd *pwnd=new cdirectxwnd();


...   下一页
 ·字符串    »显示摘要«
    摘要:字符串 何志丹 需求分析: 本部分主要演示字符串的各种常用操作,主要内容有:字符串的复制、求字符串的长度、字符串的连接(可能溢出)、大小写字母的转换、字符串的比较及直接对字符串处理、指针加减一个整数。 设计: 分成两部分:在对话框的上半部分演示常用函数,下半部分演示直接 方式。 三个编辑框分别处理两个参数和返回值,其中返回值是只读的。有些函数只有一个参数,那么......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE