Übersicht über DWM-Miniaturansichten

Desktop Window Manager (DWM) ermöglicht die Anzeige von Miniaturansichten von Anwendungsfenstern. Dabei handelt es sich nicht um statische Momentaufnahmen eines Fensters, sondern um dynamische, konstante Verbindungen zwischen einem Miniaturansichtsquellfenster und einer Position in einem Zielfenster, das das Live-Miniaturansichtsrendering empfängt. Dies ermöglicht eine schnelle Ansicht der ausgeführten Anwendungen, indem Sie auf der Taskleiste mit dem Mauszeiger auf die Anwendung zeigen oder die ALT-TAB-Tastengeste verwenden, um eine Anwendung anzuzeigen und schnell zu einer Anwendung zu wechseln.

Die folgende Abbildung veranschaulicht die Windows Vista-Liveminiaturansicht, die angezeigt wird, wenn Sie auf der Taskleiste mit dem Mauszeiger auf die Anwendung zeigen.

Screenshot der D W M-Miniaturansicht, die beim Zeigen auf eine App in der Taskleiste angezeigt wird.

Die folgende Abbildung veranschaulicht die von DWM aktivierte Windows Vista-Flip (ALT-TAB).

Screenshot der dwm-aktivierten Alt-Registerkarte

Hinweis

DWM-Miniaturansichten ermöglichen es Entwicklern nicht, Anwendungen wie das Feature Windows Vista Flip3D (WINKEY-TAB) zu erstellen. Miniaturansichten werden direkt in das Zielfenster in 2D gerendert.

 

DWM-Miniaturansichtsbeziehungen

Um Miniaturansichten in Ihrer Anwendung anzuzeigen, müssen Sie zunächst eine Beziehung zwischen einem Quellfenster und einem Zielfenster einrichten. Hierzu wird die DwmRegisterThumbnail-Funktion aufgerufen.

DwmRegisterThumbnail rendert keine Miniaturansicht im Zielfenster, sondern erstellt lediglich die Beziehung und stellt das Miniaturansichtshandle bereit. Die Miniaturansicht wird gerendert, nachdem die DWM_THUMBNAIL_PROPERTIES festgelegt und die DwmUpdateThumbnailProperties-Funktion aufgerufen wurde. Nachfolgende Aufrufe von DwmUpdateThumbnailProperties aktualisieren die Miniaturansicht mit einem neuen Satz von Eigenschaften. Der DWM stellt auch die Hilfsfunktion DwmQueryThumbnailSourceSize bereit, um die Größe des Quellfensters aus der Miniaturansicht abzurufen.

Um eine Miniaturansichtsbeziehung zu beenden, rufen Sie die DwmUnregisterThumbnail-Funktion auf.

Im folgenden Beispiel wird veranschaulicht, wie Sie ein Releationship mit dem Windows-Desktop erstellen und in einer Anwendung anzeigen.

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;

Übersicht über Desktop Window Manager

Enable and Control DWM Composition (Aktivieren und Steuern der DWM-Komposition)

Leistungsüberlegungen und bewährte Methoden