快速业务通道

在CB中进行DirectX编程(1)

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
为参数可以创建基于所选设备的DirectDraw对象;

2.1.3 获取DirectDraw更高版本的COM接口

如果您不打算使用DirectX5以上版本提供的功能则可以跳过本步骤,否则必须使用新创建DirectDraw对象的QueryIntrface方法来获得IDirectDraw2或更高的COM接口。在2.2例中将介绍如何获得DirectX5以上版本提供的IDirectDraw2接口;

2.1.4 设置协作级别

协作方式可以控制程序与系统其他应用程序之间的交互关系,典型的例子是:设置为全屏独占方式还是窗口普通方式。设置协作级别可以用DirectDraw对象的SetCooperativeLevel方法;

2.1.5 枚举设备支持的各种显示方式,选择并设置合适的显示分辩率、色彩深度和刷新频率等。

使用DirectDraw的EnumDisplayModes方法可以枚举设备支持的所有图形方式供用户选择,在某些已确定图形显示方式的应用程序中可以通过此枚举功能来检查系统设备是否支持指定的图形显示方式。

使用DirectDraw的SetDisplayMode方法可以设置所需要的图形显示方式。

2.2 用DirectDraw设置屏幕图形显示方式的实例

现在我们开始编写第一个示例程序“设置全屏幕独占图形显示方式的程序”dx1,首先我们将在这里讨论C++ Builder中进行DirectX编程的有关问题,然后再详细介绍实现程序每一步骤的相关技术。

2.2.1 dx1程序运行过程介绍

dx1是根据DirectDraw设置屏幕图形方式的过程设计的,运行界面如图2.1所示。在窗口右边有六个功能按钮,它们按照屏幕图形显示方式设置实现的步骤自上而下排列,程序开始运行时,除第一个按钮“显示设备的枚举”是可用的,其它按钮均不可用。由于用户必需按照固定的步骤操作,所以,当一个按钮任务完成后,dx1程序会将下一步任务的

图2.1 dx1 屏幕显示方式设置程序运行界面

按钮设为可用。

按下“显示设备枚举”按钮后,窗口左上方“运行状态”对应的文本框中将显示任务完成情况,若成功则显示“Enumerate devices OK!”,否则显示“Enumerate devices failed!” ,同时在状态组中的设备枚举下拉框中可以看到枚举的设备(一般系统只有一个”主显示设备—Display);确定设备枚举选择为“主显示设备”后,可以进行“创建DirectDraw对象”、“获得COM的IDIRECT2接口”、“设置协作级别”,每个步骤的运行状态都会显示在“运行状态”右边的文本框中;在执行了“DDraw2显示模式的枚举”后,状态组下方“显示模式DDraw2”下拉框中将列出所有显示设备支持的显示方式,选择需要的图形显示方式,再按“设置DDraw2”的显示方式,屏幕就会立刻切换为指定的显示方式。

2.2.2 dx1编程实现

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

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

TForm     Form1     Caption    DirectX 练习程序1

TLabel    Label1     Caption    运行状态:

TLabel    Label2     Caption    设备的枚举

Tlabel    Label3     Caption    显示模式DDraw2

TEdit     Edit1     Text     (空)

ReadOnly   true

TGroupBox   GroupBox1   Caption    状态

TCombBox   ComboBox1   Text     (空)

TCombBox   ComboBox2   Text     (空)

TGroupBox   GroupBox2   Caption    协作级别

TCheckBox   CheckBox1   Caption    DDSCL_ALLOWMODEX

TCheckBox   CheckBox2   Caption    DDSCL_ALLOWREBOOT

TCheckBox   CheckBox3   Caption    DDSCL_EXCLUSIVE

Checked

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号