首页 | 历史上的今天 | 课件园 | 教案园 | 试卷园 | 文摘园 | 工具园 | 图库园 | 娱乐园 | 有话说 | 育才园 | 
您现在的位置: 育才教育网 >> 文摘园 >> Authware >> 正文 用户登录 新用户注册
关于使用Atool调整分辨率完整代码            【字体:
关于使用Atool调整分辨率完整代码
作者:佚名    文摘来源:    点击数:    更新时间:2005-6-9
关于使用Atool调整分辨率完整代码
--有很多网友问及怎么使自己的作品在别人的机器上达到理想的效果,解决这个问题较好的办法就是动态调整屏幕分辨率,在这里把完整的代码重新整理一下,供大家参考:)
--下面的代码包括了怎么判断对方机器分辨率是否符合自己的要求?自己要设置的分辨率是否被对方机器所支持?
--新的ATOOL2.0已-经能支持修改屏幕的刷新率了!
--如果要使用budapi,请到我站点去看budapi的中文手册就可以了


##################################################################
--下面是使用atool.u32(2.0)的代码,仅供参考!
--获取当前分辨率
temp:=alGetCurrentDispSet()
--根据返回的字符串分解屏幕的宽度,高度,色彩及刷新率,分别存入相应变量中
temp:=Replace("x","\r",temp)               --将X换成换行符
UserWidth:=GetLine(temp,1)                --屏幕宽度
UserHeight:=GetLine(temp,2)               --屏幕高度
UserColorDepth:=GetLine(temp,3)         --屏幕颜色深度
UserRefresh:=GetLine(temp,4)              --屏幕刷新率

--修改屏幕分辨率
alChangeRes(800,600,16,75)         --顺序依次是:宽度,高度,颜色,刷新率

--将上面的代码放在程序开始的地方,如果安全一些,刷新率使用用户当前的设置就可以了,否则设为75一般就不闪了,设的太高可能会有问题,看你的分辨率究竟是多高了,因为这要显示卡和显示器都支持才行!

--在程序退出之前,使用下面的代码恢复用户的分辨率就可以了
alChangeRes(UserWidth,UserHeight,UserColorDepth,UserRefresh)
##################################################################
有些网友问及怎么检测自己所设置的分辨率能否被系统支持,下面提供一些代码供大家参考:
--首先,使用下面的代码获取当前系统所支持的所有分辨率,记录在变量UserDispSet中

UserDispSet:=alGetDispSet()

--使用RFIND函数查找有没有符合你的设置的字符串,如果返回0,
--表示你要设置的分辨率系统不支持,
--否则,返回所查找的字符串在userdispset所存字符串中的位置
--具体代码如下(演示如果不符合,弹出警告对话框):

If RFind("800x600x32x120",UserDispSet) = 0 then
   SystemMessageBox(WindowHandle, "当前系统不支持您所设置的分辨率!", "Warning", 48)
Else
    End if

--你也可以使用“变量x变量x变量x变量”来代替上面的800x600x32x120!
################################################################
关于屏幕分辨率的判断我是这么处理的:
在程序开始的时候插入下面的代码进行判断:
UserScreenHeight:=ScreenHeight  --高度
UserScreenWidth:=ScreenWidth   --宽度
UserScreenClcor:=ScreenDepth  --颜色,16位增强色
--如果屏幕的分辨率是:640 X 480 X 16
if UserScreenHeight = 480 & UserScreenWidth=640 & UserScreenClcor >=16 then
    setscreen:=FALSE   --做记录,保持原有的分辨率
else
    setscreen:=TRUE    --否则,做记录,修改屏幕分辨率
  --在这里插入修改屏幕分辨率的代码
end if

在程序执行退出之前,插入下面的代码进行判断并恢复原有的分辨率:
if setscreen=1 then        --如果之前修改了屏幕分辨率,进行恢复
alChangeRes(UserScreenWidth,UserScreenHeight,UserScreenClcor,85)
else      --如果之前并没有修改分辨率,则不执行任何操作
    end if

文摘录入:友哥    责任编辑:友哥 
  • 上一篇文摘: Authorware中TTS引擎的使用

  • 下一篇文摘: 没有了
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
    没有相关文摘
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    300