快速业务通道

在CB中进行DirectX编程(3)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
示在屏幕左上角;继续按“拷贝后台图面到主图面”,将把后台图面的100*100图形显示在屏幕的(200,0)位置,我们可以看到两副同样的图形以不同的缩放比例并排显示在屏幕左上方;按下“图面丢失”后,屏幕被设置成640*480的显示方式,屏幕上显示出的图形消失了;用“恢复丢失的图面”按钮重新设置显示方式为800*600(必需恢复显示方式,否则图面恢复将会失败)并恢复图面,此时,失去的图形在屏幕上仍然看不见;最后,按“重新显示图形”来重新绘制view.bmp,屏幕重新展现原有的图形。

2.3.3 dx2程序的编程实现

2.2.2 dx1编程实现

启动C++ Builder后在窗口Form1中设计如图2.2的操作界面,各对象相关属性设置如表2.3:

控件对象类型 控件对象名称 相关属性  属性值

TForm     Form1     Caption   DirectX 练习程序1

TLabel    Label1    Caption   运行状态:

TLabel    Label2    Caption   设备的枚举

Tlabel    Label3    Caption   显示模式DDraw2

TEdit     Edit1     Text    (空)

ReadOnly  True

TGroupBox   GroupBox1   Caption   状态

TCheckBox   CheckBox6   Caption   DDSCL_NOWINDOWCHANGES

Checked   true

TButton    Button1    Caption   执行

TButton    Button2    Caption   创建主图面

Enabled   False

TButton    Button3    Caption   创建后台图面

Enabled   False

TButton    Button4    Caption   后台图面装入图形

Enabled   False

TButton    Button5    Caption   主图面装入图形

Enabled   False

TButton    Button6    Caption   拷贝后台图面到主图面

Enabled   False

TButton    Button7    Caption   图面丢失:设置640*480方式

Enabled   False

TButton    Button8    Caption   恢复已丢失的图面

Enabled   False

TButton    Button9    Caption   重新显示图形

Enabled   False

表2.3 dx2控件对象属性设置一览表

2.3.3.1 创建主图面

用HRESULT IDirectDraw::CreateSurface来创建图面:

lpDD2->CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc,

LPDIRECTDRAWSURFACE FAR *lpDDSurface,

Iunknown FAR *pUnkOuter)

(1)参数lpDDSurfaceDesc是一个志向DDSURFACEDESC结构的指针,DDSURFACEDESC结构的定义比较复杂,幸好一般只需要使用其中很少的一部分。结构DDSURFACEDESC的部分描述如表2.4所示:

结构成员

描述

DOWRD dwSize

DDSURFACE结构的尺寸。在使用此结构之前,此项数据必需用sizeof函数设置

DWORD dwFlags

控制标志。主要可以设置的标志为:

DDSD_CAPS、

DDSD_HEIGHT、

DDSD_WIDTH、

DDSD_BACKBUFFERCOUNT、

DDSD_PIXELFORMATDENG 等

DWORD dwHeight

图面高度。主图面不需要设置

DWORD dwWidth

图面宽度。主图面不需要设置

DDSCAPS ddsCaps

图面能力。DDSCAPS也是一个结构,在创建图面时需要设置其成员dwCaps的值,以便确定所建图面的性质。

DwCaps的取值主要有:

DDSCAPS_PRIMARYSURFACE:主图面

DDSCAPS_OFFSCREENPLAIN:后台图面

DDSCAPS_COMPLEX:复合图面

DDSCAPS_FLIP:图面翻转链

DDSCAPS_OVERLAY:覆盖图面

DDSCAPS_VIDEOMEMORY:图面创建在显示内存

DDSCAPS_LOCALVIDMEM:使用常规显示内存

DDSCAPS_NONLOCALVIDMEM:使用AGP内存

DDSCAPS_SYSTEMMEMORY:图面创建在系统内存

表2.4 DDSURFACEDESC结构的部分成员说明

(2)参数lpDDSurface返回一个指向所创建图面的指针。

(3)参数pUnkOuter未使用,必需为NULL。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号