我在用SetLayeredWindowAttributes处理窗体时指定的颜色都会被透掉?比如我想透明白色,结果标题栏上的文字也会被透明掉。这该怎么办?

解决方案 »

  1.   

    先得到非透明区域的HRGN,再SetWindowRgn
      

  2.   

    SetWindowRgn不行的.
    窗口被SetLayeredWindowAttributes设置成透明后,一些不想透明的部分(与被透明颜色一直)也会跟着透明.比如我想透明掉某部分白色,结果窗口内的所有白色都会被透明掉.那样就很不方便操作了.怎么能避免这种情况呢?
      

  3.   

    另外千千静音歌词秀被处理为全透后会只剩下歌词.如果它也是用的SetLayeredWindowAttributes那么至少会剩下"歌词秀"还有一个最小化一个关闭按钮的.请问千千静音歌词秀是怎么实现全透显示的?
      

  4.   

    像千千静音歌词秀,可以先SetWindowRgn去掉标题栏,然后再SetLayeredWindowAttributes使背景透明。
    SetLayeredWindowAttributes的函数功能决定了让他只透明一部分白色,是不大现实的,因为他直接对整个窗体生效,而不管窗体经过什么处理,可以考虑将要透明的部分改色,或者新开一个窗口来显示这个窗口的透明色,将两个窗口显示的位置绑定起来。
      

  5.   

    我那透明色是一IE控件的背景色.请问能修改到IE页面的透明色吗?我感觉不好修改的啊?希望高手详细指点一下,最好能帖出代码.难证通过就给分.麻烦各位了
      

  6.   

    访问IE控件里的doc,设置body元素的背景色属性为你设定的透明色