SetLayeredWindowAttributes在win7下都非常好的...在xp下就失效了...
CRgn是我在网上搜的一个例子...他连添加到窗体上的Activex控件都隐藏了....我现在在窗体上添加一个Activex控件,然后整个窗体就一个Activex控件做UI..然后c++将背景隐藏掉...但是就是这么一个小问题都怎么也解决不了....
谢谢了...

解决方案 »

  1.   

    估计不只是隐藏的问题lz看下adobe 的悬浮工具条的透明效果我也想实现不过还是欠缺点东西
      

  2.   

    在主窗体的OnInitDialog函数中添加:
    // 设置分层属性   
    SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);  
    // 设置透明度 0 - completely transparent   255 - opaque   
    SetLayeredWindowAttributes(GetSafeHwnd(),0,40,LWA_ALPHA);
      

  3.   


    adobe 的悬浮工具条????
      

  4.   

    在XP系统下...无效 ?很明显是有效的,只是你用错了而已。这个函数从win2000开始就有了,许多人都ok,你的却不行,反而说无效。GetLastError 看看什么错误
      

  5.   

    那把你 设置透明 的代码片段贴上来看看
    你可以先用spy++看一下窗口是否有WS_EX_LAYERED样式
      

  6.   

    可能只是用GDI+ 加PNG图绘制在那里的图片而已
      

  7.   

    CRgn是我在网上搜的一个例子...他连添加到窗体上的Activex控件都隐藏了.你要确定好CRgn的范围与控件的范围重合
      

  8.   


    这个没法确认.....
    是加载的一个flash,..flash设置为背景透明的......可能一直都在变化形状..
      

  9.   

    今天下班回来又测试了下...用CRgn是可以的..普通的mfc的控件都成功了...然后我将flash的那个WM_MODE设置为Window也可以了,但是flash就不透明了....之前设置为transparent,就都透明了和窗体背景.....
    要怎么解决呀..谢谢了...