Overzicht van DWM-miniatuurweergave
Met Desktop Window Manager (DWM) kunt u miniatuurweergaven van toepassingsvensters weergeven. Dit zijn geen statische momentopnamen van een venster, maar zijn in plaats daarvan dynamische, constante verbindingen tussen een miniatuurbronvenster en een locatie in een doelvenster dat de weergave van de liveminiatuur ontvangt. Hierdoor kunt u toepassingen snel weergeven door de muisaanwijzer over de toepassing op de taakbalk te bewegen of door de ALT-TAB sleutelbeweging te gebruiken om een toepassing te zien en snel over te schakelen.
In de volgende afbeelding ziet u de live miniatuur van Windows Vista wanneer u de muisaanwijzer over de toepassing op de taakbalk beweegt.
In de volgende afbeelding ziet u de Windows Vista Flip (ALT-TAB) ingeschakeld door DWM.
Notitie
Met DWM-miniaturen kunnen ontwikkelaars geen toepassingen maken, zoals de functie Windows Vista Flip3D (WINKEY-TAB). Miniaturen worden rechtstreeks weergegeven in het doelvenster in 2-D.
DWM-miniatuurrelaties
Als u miniaturen in uw toepassing wilt weergeven, moet u eerst een relatie tot stand brengen tussen een bronvenster en een doelvenster. Dit wordt gedaan door de functie DwmRegisterThumbnail aan te roepen.
DwmRegisterThumbnail geeft geen miniatuur weer in het doelvenster, maar legt alleen de relatie totstand en levert de miniatuurgreep. De miniatuur wordt weergegeven nadat de DWM_THUMBNAIL_PROPERTIES zijn ingesteld en de DwmUpdateThumbnailProperties functie is aangeroepen. Bij volgende aanroepen naar DwmUpdateThumbnailProperties wordt de miniatuur bijgewerkt met een nieuwe set eigenschappen. De DWM biedt ook de helperfunctie DwmQueryThumbnailSourceSize om de grootte van het bronvenster op te halen uit de miniatuur.
Als u een miniatuurrelatie wilt beƫindigen, roept u de functie DwmUnregisterThumbnail aan.
In het volgende voorbeeld ziet u hoe u een relatie met het Windows-bureaublad opzet en deze weergeeft in een applicatie.
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;
Verwante onderwerpen
-
Overzicht van Bureaubladvensterbeheerder