다음을 통해 공유


DwmSetIconicThumbnail 함수(dwmapi.h)

창 또는 탭에서 축소판 그림 표현으로 사용할 정적 아이콘 비트맵을 설정합니다. 작업 표시줄은 이 비트맵을 창 또는 탭의 축소판 그림 스위치 대상으로 사용할 수 있습니다.

구문

HRESULT DwmSetIconicThumbnail(
  [in] HWND    hwnd,
  [in] HBITMAP hbmp,
  [in] DWORD   dwSITFlags
);

매개 변수

[in] hwnd

창 또는 탭에 대한 핸들입니다. 이 창은 호출 프로세스에 속해야 합니다.

[in] hbmp

hwnd에서 지정하는 창을 나타내는 비트맵에 대한 핸들입니다.

[in] dwSITFlags

썸네일의 표시 옵션입니다. 다음 값 중 하나입니다.

0 (0x00000000)

제공된 썸네일 주위에 프레임이 표시되지 않습니다.

DWM_SIT_DISPLAYFRAME(0x00000001)

제공된 썸네일 주위에 프레임을 표시합니다.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

애플리케이션은 일반적으로 해당 창에 대한 WM_DWMSENDICONICTHUMBNAIL 메시지를 받은 후 DwmSetIconicThumbnail 함수를 호출합니다. 썸네일은 해당 메시지에 지정된 최대 x 좌표 및 y 좌표를 초과해서는 안 됩니다. 썸네일의 색 깊이도 32비트여야 합니다.

애플리케이션은 DwmInvalidateIconicBitmaps 를 호출하여 DWM(데스크톱 창 관리자)에 상징적인 미리 보기 및 라이브 미리 보기 비트맵이 오래된 상태이며 새로 고쳐야 함을 나타냅니다. 그런 다음 DWM은 필요할 때 창에서 새 버전을 요청합니다. 그러나 DWM 비트맵 캐시가 가득 차면 DWM은 업데이트된 버전을 요청하지 않습니다.

DWM은 비트맵의 복사본을 사용하지만 애플리케이션은 메모리 제약 조건으로 인해 언제든지 이 복사본을 해제할 수 있습니다. 복사본이 릴리스되면 창에 알림이 표시되지 않지만 축소판 그림이 다시 필요할 때 후속 WM_DWMSENDICONICTHUMBNAIL 요청을 받을 수 있습니다. 호출자는 원래 비트맵의 소유권을 유지하고 더 이상 필요하지 않을 때 사용하는 리소스를 해제할 책임이 있습니다.

예제

DwmSetIconicThumbnail을 호출하기 전에 애플리케이션은 먼저 DwmSetWindowAttribute 함수를 호출하여 다음 예제와 같이 DWMWA_FORCE_ICONIC_REPRESENTATIONDWMWA_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));

다음으로, 애플리케이션은 다음 예제와 같이 WM_DWMSENDICONICTHUMBNAIL 메시지에 대한 응답으로 DwmSetIconicThumbnail 함수를 호출합니다.

        case WM_DWMSENDICONICTHUMBNAIL:
        {    
            // This window is being asked to provide its iconic bitmap. This indicates
            // a thumbnail is being drawn.
            hbm = CreateDIB(HIWORD(lParam), LOWORD(lParam)); 
            if (hbm)
            {
                hr = DwmSetIconicThumbnail(hwnd, hbm, 0);
                DeleteObject(hbm);
            }
        }
        break;

전체 예제 코드는 아이콘 축소판 그림 사용자 지정 및 라이브 미리 보기 비트맵 샘플을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 dwmapi.h
라이브러리 Dwmapi.lib
DLL Dwmapi.dll; Uxtheme.dll