当前位置: 代码迷 >> VB >> 怎么让外部窗口透明和不透明之间转换
  详细解决方案

怎么让外部窗口透明和不透明之间转换

热度:4326   发布时间:2013-02-26 00:00:00.0
如何让外部窗口透明和不透明之间转换?
这个问题跟网上搜索的不一样,请各位认真看清楚再回答,谢谢!

首先一个外部窗口,是半透明的,现在我要在我的窗口下做子窗口,但因子窗口不支持半透明,我只能先记录当时窗口的样式,然后再把那窗口的WS_EX_LAYERED去掉让它不再透明,然后当我关闭我的窗口时,该外部窗口不关闭并重新赋予父窗口为桌面,但如何还原它的半透明状态呢?请给代码,谢谢!

------解决方案--------------------------------------------------------
再用setwindowlong给设置上呗。
------解决方案--------------------------------------------------------
引用:
再用setwindowlong给设置上呗。

我也觉得如此……

难道楼主用了,不行?
------解决方案--------------------------------------------------------
setwindowlong貌似不能跨进程?
------解决方案--------------------------------------------------------
我认为你可以试试不要动别人的WS_EX_LAYERED样式,而是直接使用SetLayeredWindowAttributes函数改变对方的透明度.

SetLayeredWindowAttributes我记得是可以跨进程的.
------解决方案--------------------------------------------------------
刚试了一下,确实可以.

只要对方窗体拥有WS_EX_LAYERED样式就可以直接用SetLayeredWindowAttributes函数改变对方的透明度.
  相关解决方案