在基于对话框的程序里面怎么实现让控件透明
能提供代码或者例子就更好

解决方案 »

  1.   

    定义常量:
    #define WS_EX_LAYERED           0x00080000
    #define LWA_ALPHA               0x00000002
    声明函数:
    extern "C" {
    WINUSERAPI BOOL WINAPI
    SetLayeredWindowAttributes(
        HWND hwnd,
        COLORREF crKey,
        BYTE bAlpha,
        DWORD dwFlags);
    }
    头文件: <winuser.h>
    产生透明窗口:
    不要忘了给窗口的ExStyle加入WS_EX_LAYERED属性
    SetWindowLong(GetSafeHwnd(),
      GWL_EXSTYLE,
      GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)^WS_EX_LAYERED);
    SetLayeredWindowAttributes(GetSafeHwnd(),RGB(0,0,0),150,LWA_ALPHA);
      

  2.   

    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
    /*******&Ograve;&Ocirc;&Iuml;&Acirc;&Otilde;&acirc;&frac14;&cedil;&ETH;&ETH;&acute;ú&Acirc;&euml;&Auml;&Uuml;&sup1;&raquo;&Ecirc;&sup1;&para;&Ocirc;&raquo;°&iquest;ò&Iuml;&Ocirc;&Ecirc;&frac34;&Iacute;&cedil;&Atilde;÷*******/
    //&frac14;&Oacute;&Egrave;&euml;WS_EX_LAYERED&Agrave;&copy;&Otilde;&sup1;&Ecirc;&ocirc;&ETH;&Ocirc;
    SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
    GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
    HINSTANCE hInst = LoadLibrary("User32.DLL"); 
    if(hInst) 

    typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); 
    MYFUNC fun = NULL;
    //&Egrave;&iexcl;&micro;&Atilde;SetLayeredWindowAttributes&ordm;&macr;&Ecirc;&yacute;&Ouml;&cedil;&Otilde;&euml; 
    fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
    if(fun)fun(this->GetSafeHwnd(),0,128,2); 
    FreeLibrary(hInst); 
    }
    /*******&Ograve;&Ocirc;&Eacute;&Iuml;&Otilde;&acirc;&frac14;&cedil;&ETH;&ETH;&acute;ú&Acirc;&euml;&Auml;&Uuml;&sup1;&raquo;&Ecirc;&sup1;&para;&Ocirc;&raquo;°&iquest;ò&Iuml;&Ocirc;&Ecirc;&frac34;&Iacute;&cedil;&Atilde;÷*******/

    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CAboutDlg)
    //}}AFX_DATA_MAP
    }
      

  3.   

    TO:wistaria(听风听雨)
    请问SetLayeredWindowAttributes是怎么实现的啊
      

  4.   

    有没有具体一点的例子啊,我的EMIAL:[email protected]
      

  5.   

    SetLayeredWindowAttributes只在2000下可用,最好使用动态装载的形式调用,否则程序在98下根本启动不得.
      

  6.   

    BCB_FANS(四大名捕之追杀令)
    说的有道理