DwmSetIconicLivePreviewBitmap 関数 (dwmapi.h)
ウィンドウまたはタブのライブ プレビュー (プレビュー プレビューとも呼ばれます) を表示する静的なアイコンビットマップを設定します。タスク バーでは、このビットマップを使用して、ウィンドウまたはタブのフルサイズのプレビューを表示できます。
構文
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 ウィンドウでサムネイル フォーカスを与えると表示されます。 このビューは、ウィンドウのフルサイズのビューであり、スナップショットまたは象徴的な表現にすることができます。
ウィンドウは通常、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 |