Share via


UpdateLayeredWindow 함수(winuser.h)

계층적 창의 위치, 크기, 모양, 내용 및 투명도를 업데이트합니다.

구문

BOOL UpdateLayeredWindow(
  [in]           HWND          hWnd,
  [in, optional] HDC           hdcDst,
  [in, optional] POINT         *pptDst,
  [in, optional] SIZE          *psize,
  [in, optional] HDC           hdcSrc,
  [in, optional] POINT         *pptSrc,
  [in]           COLORREF      crKey,
  [in, optional] BLENDFUNCTION *pblend,
  [in]           DWORD         dwFlags
);

매개 변수

[in] hWnd

형식: HWND

계층화된 창에 대한 핸들입니다. CreateWindowEx 함수를 사용하여 창을 만들 때 WS_EX_LAYERED 지정하여 계층화된 창을 만듭니다.

Windows 8: WS_EX_LAYERED 스타일은 최상위 창 및 자식 창에서 지원됩니다. 이전 Windows 버전은 최상위 창에 대해서만 WS_EX_LAYERED 지원합니다.

[in, optional] hdcDst

형식: HDC

화면의 DC 핸들입니다. 이 핸들은 GetDC 함수를 호출할 때 NULL을 지정하여 가져옵니다. 창 내용이 업데이트되면 색상표 색 일치에 사용됩니다. hdcDstNULL이면 기본 색상표가 사용됩니다.

hdcSrcNULL인 경우 hdcDstNULL이어야 합니다.

[in, optional] pptDst

형식: POINT*

계층화된 창의 새 화면 위치를 지정하는 구조체에 대한 포인터입니다. 현재 위치가 변경되지 않는 경우 pptDstNULL일 수 있습니다.

[in, optional] psize

형식: SIZE*

계층화된 창의 새 크기를 지정하는 구조체에 대한 포인터입니다. 창 크기가 변경되지 않는 경우 psize는NULL일 수 있습니다. hdcSrcNULL인 경우 psize는NULL이어야 합니다.

[in, optional] hdcSrc

형식: HDC

계층화된 창을 정의하는 표면의 DC에 대한 핸들입니다. 이 핸들은 CreateCompatibleDC 함수를 호출하여 가져올 수 있습니다. 창의 모양과 시각적 컨텍스트가 변경되지 않는 경우 hdcSrcNULL일 수 있습니다.

[in, optional] pptSrc

형식: POINT*

디바이스 컨텍스트에서 계층의 위치를 지정하는 구조체에 대한 포인터입니다. hdcSrcNULL인 경우 pptSrcNULL이어야 합니다.

[in] crKey

형식: COLORREF

계층화된 창을 작성할 때 사용할 색 키를 지정하는 구조체입니다. COLORREF를 생성하려면 RGB 매크로를 사용합니다.

[in, optional] pblend

형식: BLENDFUNCTION*

계층화된 창을 작성할 때 사용할 투명도 값을 지정하는 구조체에 대한 포인터입니다.

[in] dwFlags

형식:DWORD

이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
ULW_ALPHA
0x00000002
혼합 함수로 pblend 를 사용합니다. 표시 모드가 256색 이하인 경우 이 값의 효과는 ULW_OPAQUE 효과와 동일합니다.
ULW_COLORKEY
0x00000001
투명도 색으로 crKey 를 사용합니다.
ULW_OPAQUE
0x00000004
불투명 계층화된 창을 그립니다.
ULW_EX_NORESIZE
0x00000008
현재 창 크기가 psize에 지정된 크기와 일치하지 않으면 UpdateLayeredWindowIndirect 함수가 실패하도록 합니다.
 

hdcSrcNULL인 경우 dwFlags는 0이어야 합니다.

반환 값

형식: BOOL

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

원본 DC에는 계층화된 창의 표시되는 내용을 정의하는 표면이 포함되어야 합니다. 예를 들어 CreateCompatibleDC 함수를 호출하여 얻은 디바이스 컨텍스트로 비트맵을 선택할 수 있습니다.

애플리케이션은 hdcSrc 디바이스 컨텍스트에서 SetLayout을 호출하여 미러링 모드를 올바르게 설정해야 합니다. SetLayout은 텍스트 문자 모양과 비트맵 방향 순서를 적절하게 유지하면서 모든 그리기를 HDC에 올바르게 미러. DIB(디바이스 독립적 비트맵)의 비트에 직접 그리기를 수정할 수 없습니다. 자세한 내용은 창 레이아웃 및 미러링을 참조하세요.

UpdateLayeredWindow 함수는 화면에 창의 모양을 유지합니다. 시스템이 자동으로 다시 칠하기 때문에 계층화된 창 아래의 창을 UpdateLayeredWindow 호출로 인해 발견되면 다시 칠할 필요가 없습니다. 이렇게 하면 계층화된 창의 원활한 애니메이션이 허용됩니다.

UpdateLayeredWindow 는 항상 전체 창을 업데이트합니다. 창의 일부를 업데이트하려면 기존 WM_PAINT 사용하고 SetLayeredWindowAttributes를 사용하여 혼합 값을 설정합니다.

계층화된 창과 기본 창에서 최상의 그리기 성능을 위해 계층화된 창은 가능한 한 작아야 합니다. 또한 애플리케이션은 메시지를 처리하고 디스플레이의 색 깊이가 변경될 때 계층화된 창을 다시 만들어야 합니다.

자세한 내용은 계층화된 Windows를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-window-l1-1-1(Windows 8.1 도입)

추가 정보

AlphaBlend

개념

CreateCompatibleBitmap

기타 리소스

참조

SetWindowLong

SetWindowPos

TransparentBlt

UpdateLayeredWindowIndirect

Windows