共用方式為


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 將不會要求更新的版本。

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));

接下來,應用程式會呼叫 DwmSetIconicThumbnail 函式以回應 WM_DWMSENDICONICTHUMBNAIL 訊息,如下列範例所示。

        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