DwmSetIconicLivePreviewBitmap 関数 (dwmapi.h)
ウィンドウまたはタブの ライブ プレビュー ( プレビュープレビューとも呼ばれます) を表示する静的なアイコンビットマップを設定します。タスク バーでは、このビットマップを使用して、ウィンドウまたはタブのフル サイズのプレビューを表示できます。
構文
HRESULT DwmSetIconicLivePreviewBitmap(
HWND hwnd,
HBITMAP hbmp,
[in, optional] POINT *pptClient,
DWORD dwSITFlags
);
パラメーター
hwnd
ウィンドウへのハンドル。 このウィンドウは、呼び出し元のプロセスに属している必要があります。
hbmp
hwnd が指定するウィンドウを表すビットマップへのハンドル。
[in, optional] pptClient
ホスト ウィンドウのフレームからのタブ ウィンドウの クライアント領域 (クライアント ウィンドウ フレーム内のコンテンツ領域) のオフセット。 このオフセットにより、フレームなしで描画されるときに、タブ ウィンドウの内容をライブ プレビューで正しく描画できます。
dwSITFlags
ライブ プレビューの表示オプション。 このパラメーターには、0 または次の値を指定できます。
DWM_SIT_DISPLAYFRAME (0x00000001)
0x00000001。 指定されたビットマップの周囲にフレームを表示します。
戻り値
関数が成功した場合 はS_OK を返し、それ以外の場合はエラー値を返します。 このビットマップはキャッシュされないため、アプリケーションがこの関数を呼び出したときにウィンドウがプレビューされていない場合、関数は成功コードを返しますが、ビットマップは破棄され、使用されないことに注意してください。
注釈
ウィンドウの ライブ プレビュー ( ピーク プレビューとも呼ばれます) は、ユーザーがタスク バーのウィンドウのサムネイルの上にマウス ポインターを移動するか、Alt + TAB ウィンドウでサムネイルフォーカスを与えると表示されます。 このビューは、ウィンドウのフル サイズのビューであり、スナップショットまたは象徴的な表現にすることができます。
ウィンドウは通常、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 |
Library | Dwmapi.lib |
[DLL] | Dwmapi.dll;Uxtheme.dll |