Översikt över DWM-miniatyrer
Med Desktop Window Manager (DWM) kan du visa miniatyrrepresentationer av programfönster. Det här är inte statiska ögonblicksbilder av ett fönster, utan i stället dynamiska, konstanta anslutningar mellan ett källfönster för miniatyrbilder och en plats i ett målfönster som tar emot liveminiatyråtergivningen. På så sätt kan du snabbt visa program som körs genom att hovra över programmet i aktivitetsfältet eller använda ALT-TAB nyckelgest för att se och snabbt växla till ett program.
Följande bild illustrerar windows Vista live-miniatyrbilden som visas när du hovrar över programmet i aktivitetsfältet.
Följande bild illustrerar Windows Vista Flip (ALT-TAB) som aktiveras av DWM.
Not
DWM-miniatyrer gör det inte möjligt för utvecklare att skapa program som Windows Vista Flip3D (WINKEY-TAB) funktionen. Miniatyrbilder återges direkt till målfönstret i 2D.
DWM-miniatyrbildförhållanden
Om du vill visa miniatyrbilder i ditt program måste du först upprätta en relation mellan ett källfönster och ett målfönster. Detta görs genom att anropa funktionen DwmRegisterThumbnail.
DwmRegisterThumbnail renderar inte en miniatyrbild i målfönstret utan skapar bara relationen och ger ett handtag till miniatyren. Miniatyrbilden återges efter att DWM_THUMBNAIL_PROPERTIES har angetts och funktionen DwmUpdateThumbnailProperties har anropats. Efterföljande anrop till DwmUpdateThumbnailProperties uppdaterar miniatyrbilden med en ny uppsättning egenskaper. DWM tillhandahåller också hjälpfunktionen DwmQueryThumbnailSourceSize för att hämta storleken på källfönstret från miniatyrbilden.
Avsluta en miniatyrrelation genom att anropa funktionen DwmUnregisterThumbnail.
I följande exempel visas hur du skapar en relation med Windows-skrivbordet och visar det i ett program.
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;
Relaterade ämnen
-
Översikt över Desktop Window Manager