DwmEnableBlurBehindWindow 함수(dwmapi.h)
지정된 창에서 흐림 효과를 사용하도록 설정합니다.
구문
HRESULT DwmEnableBlurBehindWindow(
[in] HWND hWnd,
[in] const DWM_BLURBEHIND *pBlurBehind
);
매개 변수
[in] hWnd
흐리게 숨김 데이터가 적용되는 창에 대한 핸들입니다.
[in] pBlurBehind
흐리게 숨김 데이터를 제공하는 DWM_BLURBEHIND 구조체에 대한 포인터입니다.
반환 값
이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
참고
Windows 8 시작해도 창 렌더링 방식의 스타일 변경으로 인해 이 함수를 호출해도 흐림 효과가 발생하지 않습니다.
DWM_BLURBEHIND 구조체의 fEnable 멤버를 TRUE로 설정하여 흐림 효과를 사용하도록 설정합니다. 이로 인해 창의 후속 컴퍼지션이 뒤에 있는 콘텐츠를 흐리게 합니다. 효과의 프롬프트 적용을 확인하려면 BeginPaint 호출 바로 전에 이 함수를 호출해야 합니다.
창의 알파 값이 적용되고 흐림 효과의 맨 위에 렌더링하면 이러한 알파 값이 사용됩니다. 창에 있는 모든 픽셀의 알파 값이 올바른지 확인하는 것은 애플리케이션의 책임입니다. 일부 GDI(Windows Graphics Device Interface) 작업은 알파 값을 유지하지 않으므로 자식 창을 표시할 때는 알파 값이 예측할 수 없으므로 주의해야 합니다.
DWM_BLURBEHIND 구조 내에 지정된 지역은 사용자가 호출자로 소유합니다. 지역을 해제하는 것은 호출자의 책임이며 함수 호출이 완료되는 즉시 해제할 수 있습니다.
이 함수는 최상위 창에서만 호출할 수 있습니다. 이 함수가 다른 창 형식에서 호출되면 오류가 발생합니다.
이 함수는 DWM(Desktop Window Manager) 컴퍼지션이 전환될 때마다 호출되어야 합니다. 컴퍼지션 변경 알림에 대한 WM_DWMCOMPOSITIONCHANGED 메시지를 처리합니다.
예제
다음 예제에서는 전체 창 뒤에 흐림 효과를 적용하는 방법을 보여 줍니다.
HRESULT EnableBlurBehind(HWND hwnd)
{
HRESULT hr = S_OK;
// Create and populate the Blur Behind structure
DWM_BLURBEHIND bb = {0};
// Enable Blur Behind and apply to the entire client area
bb.dwFlags = DWM_BB_ENABLE;
bb.fEnable = true;
bb.hRgnBlur = NULL;
// Apply Blur Behind
hr = DwmEnableBlurBehindWindow(hwnd, &bb);
if (SUCCEEDED(hr))
{
// ...
}
return hr;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | dwmapi.h |
라이브러리 | Dwmapi.lib |
DLL | Dwmapi.dll |