这个问题跟网上搜索的不一样,请各位认真看清楚再回答,谢谢!
首先一个外部窗口,是半透明的,现在我要在我的窗口下做子窗口,但因子窗口不支持半透明,我只能先记录当时窗口的样式,然后再把那窗口的WS_EX_LAYERED去掉让它不再透明,然后当我关闭我的窗口时,该外部窗口不关闭并重新赋予父窗口为桌面,但如何还原它的半透明状态呢?请给代码,谢谢!
------解决方案--------------------------------------------------------
再用setwindowlong给设置上呗。
------解决方案--------------------------------------------------------
我也觉得如此……
难道楼主用了,不行?
------解决方案--------------------------------------------------------
setwindowlong貌似不能跨进程?
------解决方案--------------------------------------------------------
我认为你可以试试不要动别人的WS_EX_LAYERED样式,而是直接使用SetLayeredWindowAttributes函数改变对方的透明度.
SetLayeredWindowAttributes我记得是可以跨进程的.
------解决方案--------------------------------------------------------
刚试了一下,确实可以.
只要对方窗体拥有WS_EX_LAYERED样式就可以直接用SetLayeredWindowAttributes函数改变对方的透明度.