DelphiX在全屏模式下Alt+Tab一次后,页面丢失的问题

可能很多朋友曾经遇到过这样的问题:DelphiX在全屏模式下Alt+Tab切换出来后,再回到原来的窗口时,页面变成一片空白。这对游戏玩家来说是难以忍受的。
    火人专门为此搜索了不少资料,发现DelphiX一直存在这样的问题,但大都用屏蔽ALT+TAB来解决,估计这是DELPHIX的一个小BUG。
    但火人不太喜欢用这种比较“霸道”的方式解决,这会给使用者带来相当的不方便。经多次测试,火人发现了产生这类问题的条件和避免出现这类问题的方法(但不能说彻底解决,因时间有限,无法解释原因,希望高手能进一步研究并给出理论上的解释),与朋友们共享:

先下载如下例程:
点击下载此文件
此例程运行后一切正常,但Alt+Tab切换出来后,再回到原来的窗口时,页面就会变成一片空白,要避免此错误,火人发现如下两个方法:
1、设DXDraw.Options := DXDraw.Options + [doFlip];但如果Form上有其它VCL控件(如TEdit)时,VCL控件就不能正常显示。
2、设:DXDraw.AutoSize:=False,另外为了DXDraw能按正确的分辨率显示,在FormCreate中加入:
<script type="text/javascript">window.attachEvent("onload",function (){AutoSizeDIV('CODE_7643')})</script>
程序代码:[ 复制代码到剪贴板 ]
 DXDraw.SurfaceWidth := DXDraw.Display.Width;
 DXDraw.SurfaceHeight := DXDraw.Display.Height;


  此方法在流行的传奇2程序上测试通过。

引用内容:
另经网友测试,也可使用如下方法:
关键是在ALT+TAB之后要把窗口还原到窗口模式:
    DXDraw.Finalize;
    DXDraw.Options := DXDraw.Options - [doFullScreen];
    DXDraw.Initialize;
窗口激活时再设置为全屏模式如下:
    DXDraw.Finalize;
    BorderStyle := bsNone;
    DXDraw.Options := DXDraw.Options + [doFullScreen];
    InitDXDraw;

 


原文:

http://www.huasoft.net/huosoft/blogview.asp?logID=39&cateID=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值