在CB中进行DirectX编程(1)
为参数可以创建基于所选设备的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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |