Ü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.
![]()
Die folgende Abbildung veranschaulicht die Windows Vista Flip (ALT-TAB), die von DWM aktiviert wird.

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;