Dict.CN 在线词典, 英语学习, 在线翻译
随笔-97  评论-326  文章-0  trackbacks-0

在Windows2000和XP中可以通过调用USER32.DLL中的SetLayeredWindowAttributes这个API来设置窗口的透明度,但也给DirectX3D带来了一个BUG,就是LAYERED窗口闪烁的问题。
你使用Windows的API:CreateWindowEx或SetWindowLong来设置窗口的WS_EX_LAYERED样式,这个时候调用上面的API来设置窗口的透明度为1-100%。然后你使用DirectX3D在这个窗口的表面上绘图,这个时候你会发现窗口会闪烁不停。
但如果你去掉窗口的WX_EXLAYERED属性,D3D绘图就不会闪烁。

据说这是Microsoft的一个BUG,参见相关引用:http://www.kbalertz.com/kbNamed_899290/899290.aspx.
该连接是说让让一个窗口覆盖住它。

posted on 2006-02-28 11:41 笨笨 阅读(543) 评论(6)  编辑 收藏 引用 所属分类: DirectX3D

评论:
# re: Microsoft的一个DirectX3D的BUG 2006-04-28 14:09 | mark
是显卡驱动的Bug, GDI和D3D同时绘图时需要把blt操作让GDI作,不然就会闪哦
  回复  更多评论
  
# re: Microsoft的一个DirectX3D的BUG 2006-05-10 14:18 | 林学斌
可见度
  回复  更多评论
  
# re: Microsoft的一个DirectX3D的BUG 2006-05-10 14:18 | 林学斌
发  回复  更多评论
  
# re: Microsoft的一个DirectX3D的BUG 2007-06-12 17:06 | sultan
fatih  回复  更多评论
  
# re: Microsoft的一个DirectX3D的BUG 2007-06-12 17:07 | sultan
istanbulkıyametvakti  回复  更多评论
  
# re: Microsoft的一个DirectX3D的BUG 2007-10-07 23:31 | 王博炜
没试过.  回复  更多评论
  

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航: