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_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));
接下來,應用程式會呼叫 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 |