DwmSetIconicLivePreviewBitmap 함수(dwmapi.h)
창 또는 탭의 라이브 미리 보기(Peek 미리 보기라고도 함)를 표시하도록 정적인 상징적인 비트맵을 설정합니다. 작업 표시줄은 이 비트맵을 사용하여 창 또는 탭의 전체 크기 미리 보기를 표시할 수 있습니다.
구문
HRESULT DwmSetIconicLivePreviewBitmap(
[in] HWND hwnd,
[in] HBITMAP hbmp,
[in, optional] POINT *pptClient,
[in] DWORD dwSITFlags
);
매개 변수
[in] hwnd
창에 대한 핸들입니다. 이 창은 호출 프로세스에 속해야 합니다.
[in] hbmp
hwnd에서 지정하는 창을 나타내는 비트맵에 대한 핸들입니다.
[in, optional] pptClient
호스트 창의 프레임에서 탭 창의 클라이언트 영역 (클라이언트 창 프레임 내의 콘텐츠 영역)의 오프셋입니다. 이 오프셋을 사용하면 탭 창의 내용을 프레임 없이 그릴 때 라이브 미리 보기에서 올바르게 그릴 수 있습니다.
[in] dwSITFlags
라이브 미리 보기에 대한 표시 옵션입니다. 이 매개 변수는 0 또는 다음 값일 수 있습니다.
DWM_SIT_DISPLAYFRAME(0x00000001)
0x00000001. 제공된 비트맵 주위에 프레임을 표시합니다.
반환 값
함수가 성공하면 S_OK 반환하고, 그렇지 않으면 오류 값을 반환합니다. 이 비트맵은 캐시되지 않으므로 애플리케이션이 이 함수를 호출할 때 창을 미리 볼 수 없는 경우 함수는 성공 코드를 반환하지만 비트맵은 삭제되고 사용되지 않습니다.
설명
사용자가 작업 표시줄의 창 축소판 그림 위로 마우스 포인터를 이동하거나 ALT+TAB 창에서 축소판 그림 포커스를 제공하면 창의 라이브 미리 보기(Peek 미리 보기라고도 함)가 나타납니다. 이 보기는 창의 전체 크기 보기이며 스냅샷 또는 상징적인 표현일 수 있습니다.
창은 일반적으로 WM_DWMSENDICONICLIVEPREVIEWBITMAP 메시지에 대한 응답으로 DwmSetIconicLivePreviewBitmap 함수를 호출합니다. 반환된 비트맵은 창 또는 프레임의 클라이언트 영역보다 크지 않아야 하며 32비트 색 깊이가 있어야 합니다.
DWM(데스크톱 창 관리자)은 비트맵의 복사본을 사용하지만 호출자는 원래 비트맵의 소유권을 유지하고 더 이상 필요하지 않을 때 사용하는 리소스를 해제합니다. DWM이 라이브 미리 보기 표현 표시를 중지하면 DWM은 비트맵의 복사본을 유지하지 않습니다.
예제
애플리케이션 창의 라이브 미리 보기로 사용할 정적 아이콘 비트맵을 설정하기 위해 애플리케이션은 DwmSetIconicLivePreviewBitmap 함수를 호출합니다. 이 비트맵을 설정하려면 애플리케이션이 DwmSetWindowAttribute 를 호출하여 비 클라이언트 렌더링에 대한 창 특성을 DWMWA_FORCE_ICONIC_REPRESENTATION 및 DWMWA_HAS_ICONIC_BITMAP 설정해야 합니다.
// Set DWM window attributes to provide the iconic bitmap, and
// to always render the thumbnail using the iconic bitmap.
BOOL fForceIconic = TRUE;
BOOL fHasIconicBitmap = TRUE;
DwmSetWindowAttribute(
hwnd,
DWMWA_FORCE_ICONIC_REPRESENTATION,
&fForceIconic,
sizeof(fForceIconic));
DwmSetWindowAttribute(
hwnd,
DWMWA_HAS_ICONIC_BITMAP,
&fHasIconicBitmap,
sizeof(fHasIconicBitmap));
그런 다음, 애플리케이션은 다음 코드와 같이 DwmSetIconicLivePreviewBitmap 을 호출하여 WM_DWMSENDICONICLIVEPREVIEWBITMAP 메시지에 응답합니다.
case WM_DWMSENDICONICLIVEPREVIEWBITMAP:
{
// This window is being asked to provide a bitmap to show in Peek preview.
// This indicates the thumbnail in the taskbar is being previewed.
RECT rectWindow = {0, 0, 0, 0};
if (GetClientRect(hwnd, &rectWindow))
{
nWidth = rectWindow.right - rectWindow.left;
nHeight = rectWindow.bottom - rectWindow.top;
}
hbm = CreateDIB(nWidth, nHeight);
if (hbm)
{
hr = DwmSetIconicLivePreviewBitmap(hwnd, hbm, NULL, DWM_SIT_DISPLAYFRAME);
DeleteObject(hbm);
}
}
break;
전체 예제는 아이콘 축소판 그림 사용자 지정 및 라이브 미리 보기 비트맵 샘플을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | dwmapi.h |
라이브러리 | Dwmapi.lib |
DLL | Dwmapi.dll; Uxtheme.dll |