不知道如何单独设置子窗口透明,
SetLayeredWindowAttributes在子窗口单独设置没效果,而在父窗口设置则连子窗口都透明了

解决方案 »

  1.   

    使用SetLayeredWindowAttributes时 窗口不能是其他窗口的子窗口
      

  2.   

    SetLayeredWindowAttributes的前提条件是not WS_CHILD
      

  3.   

    你可以这样试试,让子窗口没有没有WS_CHILD风格,但是有父窗口。
      

  4.   

    子窗口设置成POPUP弹出窗口,代码要实现与父窗口联动,即跟着父窗口移动和调整尺寸。不过透明的时候是透出来父窗口的背景,如果想透出桌面,还要把父窗口的这部分挖空,即实现不规则窗口。
      

  5.   

    http://www.vckbase.com/document/viewdoc/?id=768
      

  6.   

    问题自己解决了,我的做法很简单,如下:
    1:新建一个对话框资源模板(大小随便,程序里可以调整,我是根据图片大小设置)
    2:为对话框模板添加一个类
    3:修改风格(如果带WS_CHILD风格,则该窗口会随主对话框移动)
       我是直接指定WS_CHILD | WS_DISABLED 两种风格(窗口用图片覆盖,把它当成一张图片)
    4:初始化设置透明度(创建后可以随意更改)
    5:创建非模式对话框(可以创建多个,指定不同的图片)
    效果:实现图片的淡入淡出的效果,效率高(因为只是改变窗口的透明度)
         而使用GDI+实现图片的淡入淡出效果的效率却极低(不知道是不是我没掌握好GDI+alpha通道设置...)