利用GDI+透明图片做了个透明窗体~
当我再次在起上贴图却不能显示~ 只是不能显示(API调用成功)这是为什么呢?当我用png 透明Button的时候,在其上的透明区域为黑色
而我在正常窗体上(非透明窗体)上却可以正常显示透明Button和GDI+贴图我怀疑DC有问题,而我又不知道为什么?
请赐教!

解决方案 »

  1.   

    楼主可以试下这个方法
    typedef BOOL (FAR PASCAL * FUNC1)(
      HWND hwnd,           // handle to the layered window
      COLORREF crKey,      // specifies the color key
      BYTE bAlpha,         // value for the blend function
      DWORD dwFlags        // action
    );
    HMODULE hModule = GetModuleHandle("user32.dll");
     FUNC1 SetLayeredWindowAttributes;
     SetLayeredWindowAttributes =  (FUNC1) GetProcAddress (hModule, _T( "SetLayeredWindowAttributes" ) ); // 设置分层扩展标记
     SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | 0x80000L);
     // 70% alpha
     SetLayeredWindowAttributes(GetSafeHwnd(), 0, (255 * 70) / 100, 0x2);
      

  2.   

    1.问题是不是你用的图片类实例已经被delete掉了?或者其他gdi对像、gdi环境已经关闭了2。DrawImage需要设置ImageAttributes,里面可以设置透明掩码等标记,你是否设置正确?
      

  3.   

    http://download.csdn.net/down/665101/q06380925
      

  4.   

    我也遇到过此问题,在GDI+绘制的窗口上再放GDI+绘制的按钮时,按钮背景色为黑色,非GDI+绘制的窗口则没有此问题。不好意思,我还没解决……我就是把按钮的透明部分用所在窗口位置处的背景进行了填充,效果跟想要的一样,就是有点猥琐……
      

  5.   

    楼上的靠谱了 ~ 
    我也已经解决 !就是新创建个窗口,属性要是transparent
    具体Google下吧
      

  6.   

    参考这篇文章 http://www.vckbase.com/document/viewdoc/?id=1745
      

  7.   

    楼主告诉我什么意思啊!我创建了按钮也是GDI+的,就是透明不掉!请问楼主怎么弄的啊???????