次の方法で共有


DWM サムネイルの概要

デスクトップ ウィンドウ マネージャー (DWM) を使用すると、アプリケーション ウィンドウのサムネイル表現を表示できます。 これらはウィンドウの静的スナップショットではなく、サムネイル ソース ウィンドウと、ライブ サムネイル レンダリングを受け取るターゲット ウィンドウ上の場所との間の動的な一定の接続です。 これにより、タスク バー上のアプリケーションの上にマウス ポインターを合わせたり、Alt キーを押しながら Tab キージェスチャを使用してアプリケーションを表示したり、すばやく切り替えたりして、実行中のアプリケーションをすばやく表示できます。

次の図は、タスク バー上のアプリケーションをポイントしたときに表示される Windows Vista ライブ サムネイルを示しています。

タスク バーのアプリの上にマウス ポインターを合わせると表示される D W M サムネイルを示すスクリーンショット。

次の図は、DWM で有効になっている Windows Vista Flip (Alt+ TAB) を示しています。

dwm 対応 alt-tab のスクリーン ショット

Note

DWM サムネイルを使用すると、開発者は Windows Vista Flip3D (WINKEY-TAB) 機能のようなアプリケーションを作成できません。 サムネイルは、2-D の移動先ウィンドウに直接レンダリングされます。

 

DWM サムネイルのリレーションシップ

アプリケーションでサムネイルを表示するには、最初にソース ウィンドウとコピー先ウィンドウの間にリレーションシップを確立する必要があります。 これを行うには、 DwmRegisterThumbnail 関数を呼び出します。

DwmRegisterThumbnail は、移動先ウィンドウにサムネイルをレンダリングするのではなく、リレーションシップを作成し、サムネイル ハンドルを提供するだけです。 サムネイルは、 DWM_THUMBNAIL_PROPERTIES が設定され、 DwmUpdateThumbnailProperties 関数が呼び出された後にレンダリングされます。 DwmUpdateThumbnailProperties の後続の呼び出しにより、サムネイルが新しいプロパティ セットで更新されます。 DWM には、サムネイルからソース ウィンドウのサイズを取得するためのヘルパー関数 DwmQueryThumbnailSourceSize も用意されています。

サムネイルリレーションシップを終了するには、 DwmUnregisterThumbnail 関数を呼び出します。

次の例では、Windows デスクトップを使用してleleationshipを作成し、アプリケーションに表示する方法を示します。

HRESULT hr = S_OK;
HTHUMBNAIL thumbnail = NULL;

// Register the thumbnail
hr = DwmRegisterThumbnail(hwnd, FindWindow(_T("Progman"), NULL), &thumbnail);
if (SUCCEEDED(hr))
{
    // Specify the destination rectangle size
    RECT dest = {0,50,100,150};

    // Set the thumbnail properties for use
    DWM_THUMBNAIL_PROPERTIES dskThumbProps;
    dskThumbProps.dwFlags = DWM_TNP_SOURCECLIENTAREAONLY | DWM_TNP_VISIBLE | DWM_TNP_OPACITY | DWM_TNP_RECTDESTINATION;
    dskThumbProps.fSourceClientAreaOnly = FALSE; 
    dskThumbProps.fVisible = TRUE;
    dskThumbProps.opacity = (255 * 70)/100;
    dskThumbProps.rcDestination = dest;

    // Display the thumbnail
    hr = DwmUpdateThumbnailProperties(thumbnail,&dskThumbProps);
    if (SUCCEEDED(hr))
    {
        // ...
    }
}
return hr;

デスクトップ ウィンドウ マネージャーの概要

Enable and Control DWM Composition (DWM の構成の有効化と制御)

パフォーマンスに関する考慮事項とベスト プラクティス