1. 함수의 원형

 BOOL SetLayeredWindowAttributes(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

2. 함수의 기능

WS_EX_LAYERED  속성을 가지고 생성된 윈도우가 다른 윈도우와 겹쳐진 상태로 존재할때, 특정 색상을 투명화하거나 윈도우 자체의 불투명도를 설정하는 함수이다.

SetWindowLong(m_hWnd, GWL_EXSTYLE,GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
를 사용하여 Window 에 WS_EX_LAYERED 를 추가 할 수 있다

 

3. 함수의 매개변수에 대한 설명

    3.1 Hwnd
      특정 색상을 투명화하거나 불투명도를 설정할 대상 윈도우의 핸들이다.

   
   3.2 crKey
      대상 윈도우에서 투명화할 색상의 COLORREF 값을 명시한다. 이 값은 dwFlags 값에 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(0, 0, 255), 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.
분류 :
Win32
조회 수 :
20135
등록일 :
2008.09.19
14:32:42 (*.149.217.155)
엮인글 :
http://www.lunapiece.net/352/859/trackback
게시글 주소 :
http://www.lunapiece.net/352
문서 첨부 제한 : 0Byte/ 10.00MB
파일 제한 크기 : 10.00MB (허용한 확장자만 첨부할 수 있습니다.(관리자는 제외) : *.*)
옵션 :
:
:
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
21 Visual C++ Templete을 이용하여 BC++ OnClick 이벤트 VC++에서 흉내내보기 Lyn 2008-09-27 30998
20 Delphi / BCB SpeedButton 투명하게하기 Lyn 2008-09-19 16589
19 Win32 시스템 종료 함수 Lyn 2008-09-19 117135
18 Delphi / BCB 폼을 그림 모양대로 잘라내기 Lyn 2008-09-19 16780
» Win32 Window 투명화 (Layerd Window) Lyn 2008-09-19 20135
16 Win32 파일이 존재하는지 확인하는 함수 Lyn 2008-09-19 19676
15 Visual C++ Window 최대, 최소 크기 정하기 Lyn 2008-09-17 18461
14 Win32 프로그램이 죽었는지 살았는지 확인만 하고 싶은경우 Lyn 2008-09-17 15385
13 Visual C++ 컨트롤 원하는대로 수정한 클래스 만들기 (기초) Lyn 2008-09-06 18570
12 Win32 데스크탑 영역 구하기 Lyn 2008-08-21 14399
11 Win32 마우스 일정 영역에 가두기 Lyn 2008-08-21 15724
10 Delphi / BCB 재귀 호출을 이용한 폴더내의 파일 전부 검색하기 Lyn 2008-08-15 17278
9 Delphi / BCB 타이틀바가 없는 폼 이동하기. Lyn 2008-08-15 127703
8 Delphi / BCB PChar 과 ShortString 타입 서로 변경하는 방법. Lyn 2008-08-15 14097
7 Visual C++ Alt + F4 막기 Lyn 2008-08-15 18172
6 Win32 Program Files 폴더 동적으로 가져오기. Lyn 2008-08-15 18031
5 Visual C++ Esc키와 Enter키로 다이얼로그 종료되는것 막기 Lyn 2008-08-15 19688
4 Win32 쓰래드에 이름 지정하기 Lyn 2008-08-15 20675
3 Delphi / BCB Delphi 에서 메모리 릭 체크하는 방법 Lyn 2008-08-15 18424
2 Delphi / BCB 폼을 띄울때, 작업표시줄에 폼이 표시되게 하는 방법. Lyn 2008-08-15 14198

SITE LOGIN :)