我在MFC对话框中加载了一个GIF,这个GIF是背景透明的,现在想让窗体透明,加载GIF的控件也透明,就是说运行后只有这个背景透明的GIF的动画出现,其余全部透明,应该怎么做呢?希望各位提供代码,小弟初学!!

解决方案 »

  1.   

    SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);SetLayeredWindowAttributes(RGB(255, 255, 255), 255, LWA_COLORKEY);红色的部分是你的对话框背景色,同时把对话框的标题栏、边框等都去掉就行了
      

  2.   

    参考一下下面的代码http://www.codeproject.com/KB/static/aboutctrl.aspx
      

  3.   


    对话框也透明,只留下一个背景透明的gif~~
      

  4.   

    这段代码在你的对话框里的OnInitDialog中调用
    我这边已经实现了
      

  5.   

     error C2065: 'WS_EX_LAYERED' : undeclared identifier
     error C2065: 'SetLayeredWindowAttributes' : undeclared identifier
     error C2065: 'LWA_COLORKEY' : undeclared identifier
    这怎么办啊???
      

  6.   

    stdafx.h#define WINVER 0x0500
      

  7.   

    [你的vc sdk 版本太低,最好升级到最新的 sdk
    如果不方便升级
    用下面的代码typedef  BOOL (WINAPI *LAYERFUNC)( HWND , COLORREF ,
    BYTE ,
    DWORD 
    ); LAYERFUNC   SetLayer;   
    HMODULE   hmod=LoadLibrary("user32.dll");   
    SetWindowLong( m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE)|0x80000L);   
    SetLayer=(LAYERFUNC)GetProcAddress(hmod,"SetLayeredWindowAttributes");   
    SetLayer(m_hWnd,RGB(255, 255, 255), 255, ,0x1);   
        
    FreeLibrary(hmod);   
      

  8.   

    SetLayer(m_hWnd,RGB(255,255,255),255, ,0x1);  
    你要将对话框的背景色设置成动画里没有的颜色(例如RGB(0,128,128),这是图标的透明色),然后将对话框的背景色设置成透明色。这样就不会影响到动画了。
      

  9.   

    我不想让gif图片后的窗体都变透明了啊,咋整呢?gif图片背景是白色的,我只想把白色去掉,就剩图。
      

  10.   


    为什么我还是不成功?这些代码是放在OninitDialog里么?