在CB中进行DirectX编程(3)
示在屏幕左上角;继续按“拷贝后台图面到主图面”,将把后台图面的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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |