如何让外部窗口透明和不透明之间转换?

penguinhzf 2012-11-22 04:47:01
这个问题跟网上搜索的不一样,请各位认真看清楚再回答,谢谢!

首先一个外部窗口,是半透明的,现在我要在我的窗口下做子窗口,但因子窗口不支持半透明,我只能先记录当时窗口的样式,然后再把那窗口的WS_EX_LAYERED去掉让它不再透明,然后当我关闭我的窗口时,该外部窗口不关闭并重新赋予父窗口为桌面,但如何还原它的半透明状态呢?请给代码,谢谢!
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2012-12-03
  • 打赏
  • 举报
回复
刚试了一下,确实可以. 只要对方窗体拥有WS_EX_LAYERED样式就可以直接用SetLayeredWindowAttributes函数改变对方的透明度.
嗷嗷叫的老马 2012-12-03
  • 打赏
  • 举报
回复
我认为你可以试试不要动别人的WS_EX_LAYERED样式,而是直接使用SetLayeredWindowAttributes函数改变对方的透明度. SetLayeredWindowAttributes我记得是可以跨进程的.
penguinhzf 2012-11-30
  • 打赏
  • 举报
回复
那类似的情况应该如何操作?
嗷嗷叫的老马 2012-11-30
  • 打赏
  • 举报
回复
setwindowlong貌似不能跨进程?
penguinhzf 2012-11-29
  • 打赏
  • 举报
回复
引用 3 楼 Chen8013 的回复:
引用 2 楼 caozhy 的回复:再用setwindowlong给设置上呗。 我也觉得如此…… 难道楼主用了,不行?
我试了,确实不行,是不是透明度不是保存在窗口的属性里面啊?
舉杯邀明月 2012-11-26
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
再用setwindowlong给设置上呗。
我也觉得如此…… 难道楼主用了,不行?
threenewbee 2012-11-25
  • 打赏
  • 举报
回复
再用setwindowlong给设置上呗。
penguinhzf 2012-11-24
  • 打赏
  • 举报
回复
不要沉啊,顶起来...

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧