Sdílet prostřednictvím


Přehled miniatur DWM

Správce oken plochy (DWM) umožňuje zobrazit miniatury znázornění oken aplikací. Nejedná se o statické snímky okna, ale jsou to dynamická konstantní připojení mezi oknem zdroje miniatur a umístěním v cílovém okně, které přijímá vykreslování živých miniatur. To umožňuje rychlé zobrazení spuštěných aplikací tak, že na hlavním panelu najedete myší na aplikaci nebo pomocí gesta klávesy ALT-TAB zobrazíte a rychle přepnete na aplikaci.

Následující obrázek znázorňuje živou miniaturu systému Windows Vista zobrazenou při najetí myší na aplikaci na hlavním panelu.

snímek obrazovky znázorňující miniaturu D W M zobrazenou při najetí myší na aplikaci na hlavním panelu

Následující obrázek znázorňuje funkci Windows Vista Flip (ALT-TAB) povolenou DWM.

snímek obrazovky alt-tab s podporou DWM

Poznámka

Miniatury DWM neumožňují vývojářům vytvářet aplikace, jako je funkce Windows Vista Flip3D (WINKEY-TAB). Náhledy se vykreslují přímo do cílového okna ve 2D.

 

Vztahy miniatur DWM

Pokud chcete v aplikaci zobrazit miniatury, musíte nejprve vytvořit relaci mezi zdrojovým oknem a cílovým oknem. To se provádí voláním funkce DwmRegisterThumbnail.

DwmRegisterThumbnail nevykreslí miniaturu v cílovém okně, ale pouze vytvoří relaci a poskytne úchyt miniatury. Miniatura je vykreslena poté, co byly nastaveny DWM_THUMBNAIL_PROPERTIES a byla zavolána funkce DwmUpdateThumbnailProperties. Následná volání DwmUpdateThumbnailProperties aktualizují miniaturu pomocí nové sady vlastností. DWM také poskytuje pomocnou funkci DwmQueryThumbnailSourceSize, aby získal velikost zdrojového okna z miniatury.

Pokud chcete ukončit relaci miniatur, zavolejte funkci DwmUnregisterThumbnail.

Následující příklad demonstruje, jak vytvořit vztah s plochou Windows a zobrazit jej v aplikaci.

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;

Přehled Správce desktopových oken

Povolení a Řízení Kompozice DWM

aspekty výkonu a osvědčené postupy