加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – DirectDraw分层窗口颜色键?

发布时间:2020-12-14 02:50:51 所属栏目:Windows 来源:网络整理
导读:我正在创建一个带有WS_EX_LAYERED的窗口,并使用SetLayeredWindowAttributes()为其设置一个颜色键.我可以通过在窗口内使用FillRect()绘制一个简单的rect来验证这个颜色键确实在窗口中创建了一个透明的补丁.但是,当我使用DirectDraw在窗口中绘图时,这不起作用.
我正在创建一个带有WS_EX_LAYERED的窗口,并使用SetLayeredWindowAttributes()为其设置一个颜色键.我可以通过在窗口内使用FillRect()绘制一个简单的rect来验证这个颜色键确实在窗口中创建了一个透明的补丁.但是,当我使用DirectDraw在窗口中绘图时,这不起作用.我正在窗口上创建一个IDirectDrawSurface7,我正在Blt()一些像素.一些像素用颜色键着色,但我不认为它们是透明的,它们只出现在颜色键中.

DirectDraw表面中是否存在与分层窗口颜色键控冲突的内容?
当我使用SetLayeredWindowAttributes()设置alpha值时,它似乎与DirectDraw表面一起正常工作,它确实显得半透明.

解决方法

我不知道你是否看过这个,但下面发表的文章中的这一段看起来有点像你在找什么.

hWnd是具有WS_EX_LAYERED样式标志的窗口的窗口句柄. dwFlags参数可以包含LWA_COLORKEY和LWA_ALPHA中的一个或两个.如果使用LWA_COLORKEY标志,则crKey参数是透明颜色键.如果使用LWA_ALPHA标志,则bAlpha参数是constat源alpha值. **只有顶层窗户可以分层窗户.**

我认为这是最后一句话就是问题.该来源是谷歌书籍的一部分.您可以使用此处的一些代码详细示例来阅读它:

http://books.google.com/books?id=-O92IIF1Bj4C&pg=PA720&lpg=PA720&dq=WS_EX_LAYERED+%2B+DirectDraw+color+key&source=bl&ots=SyWKE3aimb&sig=DXbshrEk2tN17h7CtWdMmAkHlAo&hl=en&sa=X&ei=7_JcVKSyFMukNrumgMgB&ved=0CCkQ6AEwAg#v=onepage&q=WS_EX_LAYERED%20%2B%20DirectDraw%20color%20key&f=false

我还将包括以下链接,讨论一些关于它的内容,尽管不是几乎相同的细节:

http://web.cs.wpi.edu/~matt/courses/cs563/talks/cbyrd/pres3.html

http://msdn.microsoft.com/en-us/library/windows/hardware/ff567254(v=vs.85).aspx

我不知道这是否会回答你的问题,但我希望它有所帮助.干杯.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读