1. 함수의 원형
 
    BOOL SetLayeredWindowAttributes(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
 
 
2. 함수의 기능
 
    WS_EX_LAYERED 속성을 가지고 생성된 윈도우가 다른 윈도우와 겹쳐진 상태로 존재할때, 특정 색상을
    투명화하거나 윈도우 자체의 불투명도를 설정하는 함수이다.
 
 
3. 함수의 매개변수에 대한 설명
 
    3.1 hwnd
 
        특정 색상을 투명화하거나 불투명도를 설정할 대상 윈도우의 핸들이다.
 
    3.2 crKey
 
        대상 윈도우에서 투명화할 색상의 COLORREF 값을 명시한다. 이 값은 dwFlags 값에 LWA_COLORKEY
        값이 명시되어야지 유효하다.
 
        // 현재 윈도우의 핸들이 m_hWnd 값이고 해당 윈도우에 존재하는 붉은색을 투명화하려면 아래와
        // 같이 사용하면 된다.
        SetLayeredWindowAttributes(m_hWnd, RGB(255, 0, 0), 0, LWA_COLORKEY);
 
        [주의] 위와 같은 방법을 통하여 투명해진 영역에서는 마우스 메시지를 받지 못한다.
 
    3.3 bAlpha
 
        대상 윈도우의 불투명도를 설정한다. 설정범위는 0에서 255까지이며 0은 완전히 투명한 상태이고
        255는 완전히 불투명한 상태이다. 이 값은 dwFlags 값에 LWA_ALPHA 값이 명시되어야지 유효하다.
 
        // 현재 윈도우의 핸들이 m_hWnd 값이고 해당 윈도우를 50%정도 불투명하게 하려면 아래와
        // 같이 사용하면 된다.
        SetLayeredWindowAttributes(m_hWnd, 0, 127, LWA_ALPHA);
 
    3.4 dwFlags
 
        LWA_COLORKEY를 명시하면 crKey 값에 명시된 색상으로 투명화를 설정하고, LWA_ALPHA를 명시하면
        bAlpha 값에 명시된 값으로 불투명도를 설정한다. 그리고 이 두 값은 OR(|)연산자로 조합해서
        동시에 사용가능하다.
 
        // 현재 윈도우의 핸들이 m_hWnd 값이고 해당 윈도우에 존재하는 붉은색을 투명화 하면서 나머지
        // 색상들은 50%정도로 불투명하게 하려면 아래와 같이 사용하면 된다.
        SetLayeredWindowAttributes(m_hWnd, RGB(255, 0, 0), 127, LWA_COLORKEY | LWA_ALPHA);
 
 
4. 함수의 반환값
 
    이 함수가 성공적으로 완료되었다면 0이 아닌값을 반환하고 실패했다면 0을 반환한다. 실패한 경우,
    좀더 자세한 정보를 얻고자 한다면 GetLastError 함수를 이용하면 된다.
 
 
5. 함수 사용시 주의사항
 
    SetLayeredWindowAttributes 함수를 호출한 후에, UpdateLayeredWindow 함수를 호출하면
    WS_EX_LAYERED 속성이 해제되었다가 다시 설정될때까지는 실패할 것이다.
 
 
6. 함수의 요구사항
 
    Window NT/2000/XP: Included in Windows 2000 and later.
    Windows 95/98/Me: Unsupported.
    Header: Declared in Winuser.h: Include Windows.h.
    Library: Use User32.lib.

출처 : http://www.tipssoft.com
Posted by system
l