Übersicht über DWM-Miniaturansichten

Desktopfenster-Manager (DWM) ermöglicht die Anzeige von Miniaturansichtsdarstellungen von Anwendungsfenstern. Dies sind keine statischen Momentaufnahmen eines Fensters, sondern dynamische, konstante Verbindungen zwischen einem Miniaturansichts-Quellfenster und einem Speicherort in einem Zielfenster, das das Live-Miniaturbildrendering empfängt. Dies ermöglicht eine schnelle Ansicht der ausgeführten Anwendungen, indem Sie auf der Taskleiste auf die Anwendung zeigen oder die ALT-TAB-TASTE verwenden, um eine Anwendung zu sehen und schnell zu wechseln.

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

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

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

Screenshot der dwm-aktivierten ALT-TAB-TASTE

Hinweis

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

DWM-Miniaturansichtsbeziehungen

Um Miniaturansichten in Ihrer Anwendung anzuzeigen, müssen Sie zunächst eine Beziehung zwischen einem Quell- und einem Zielfenster einrichten. Dies erfolgt durch Aufrufen der DwmRegisterThumbnail-Funktion.

DwmRegisterThumbnail rendert keine Miniaturansicht im Zielfenster, sondern erstellt lediglich die Beziehung und stellt das Miniaturbildhandling zur Seite. 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. Das DWM bietet auch die Hilfsfunktion DwmQueryThumbnailSourceSize, um die Größe des Quellfensters aus der Miniaturansicht zu erhalten.

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

Im folgenden Beispiel wird veranschaulicht, wie Sie eine Verleierung mit dem Windows 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)

Überlegungen zur Leistung und bewährte Methoden