Share via


DwmSetIconicThumbnail, fonction (dwmapi.h)

Définit une image bitmap statique et iconique sur une fenêtre ou un onglet à utiliser comme représentation miniature. La barre des tâches peut utiliser cette bitmap comme cible de commutateur de miniatures pour la fenêtre ou l’onglet.

Syntaxe

HRESULT DwmSetIconicThumbnail(
  [in] HWND    hwnd,
  [in] HBITMAP hbmp,
  [in] DWORD   dwSITFlags
);

Paramètres

[in] hwnd

Handle de la fenêtre ou de l’onglet. Cette fenêtre doit appartenir au processus appelant.

[in] hbmp

Handle de la bitmap pour représenter la fenêtre spécifiée par hwnd .

[in] dwSITFlags

Options d’affichage de la miniature. Une des valeurs suivantes :

0 (0x00000000)

Aucun cadre n’est affiché autour de la miniature fournie.

DWM_SIT_DISPLAYFRAME (0x00000001)

Affiche un cadre autour de la miniature fournie.

Valeur retournée

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Notes

Une application appelle généralement la fonction DwmSetIconicThumbnail après avoir reçu un message WM_DWMSENDICONICTHUMBNAIL pour sa fenêtre. La miniature ne doit pas dépasser la coordonnée x et la coordonnée y maximales spécifiées dans ce message. La miniature doit également avoir une profondeur de couleur de 32 bits.

L’application appelle DwmInvalidateIconicBitmaps pour indiquer au Gestionnaire de fenêtres de bureau (DWM) que la miniature iconique et les images bitmap d’aperçu en direct sont obsolètes et doivent être actualisées. Le DWM demande ensuite de nouvelles versions à partir de la fenêtre quand elles sont nécessaires. Toutefois, si le cache bitmap DWM est plein, DWM ne demande pas les versions mises à jour.

Le DWM utilise une copie de la bitmap, mais l’application peut libérer cette copie à tout moment en raison de contraintes de mémoire. Si la copie est libérée, la fenêtre n’est pas avertie, mais elle peut recevoir une demande de WM_DWMSENDICONICTHUMBNAIL ultérieure lorsque sa miniature est à nouveau nécessaire. L’appelant conserve la propriété de la bitmap d’origine et est chargé de libérer les ressources qu’il utilise lorsqu’elle n’est plus nécessaire.

Exemples

Avant d’appeler DwmSetIconicThumbnail, l’application doit d’abord appeler la fonction DwmSetWindowAttribute pour définir les attributs DWMWA_FORCE_ICONIC_REPRESENTATION et DWMWA_HAS_ICONIC_BITMAP , comme illustré dans l’exemple suivant.

            // Set DWM window attributes to provide the iconic bitmap, and 
            // to always render the thumbnail using the iconic bitmap.
            BOOL fForceIconic = TRUE;
            BOOL fHasIconicBitmap = TRUE;

            DwmSetWindowAttribute(
                hwnd,
                DWMWA_FORCE_ICONIC_REPRESENTATION,
                &fForceIconic,
                sizeof(fForceIconic));

            DwmSetWindowAttribute(
                hwnd,
                DWMWA_HAS_ICONIC_BITMAP,
                &fHasIconicBitmap,
                sizeof(fHasIconicBitmap));

Ensuite, l’application appelle la fonction DwmSetIconicThumbnail en réponse à un message WM_DWMSENDICONICTHUMBNAIL , comme illustré dans l’exemple suivant.

        case WM_DWMSENDICONICTHUMBNAIL:
        {    
            // This window is being asked to provide its iconic bitmap. This indicates
            // a thumbnail is being drawn.
            hbm = CreateDIB(HIWORD(lParam), LOWORD(lParam)); 
            if (hbm)
            {
                hr = DwmSetIconicThumbnail(hwnd, hbm, 0);
                DeleteObject(hbm);
            }
        }
        break;

Pour obtenir l’exemple de code complet, consultez l’exemple Personnaliser une miniature iconique et une bitmap en préversion en direct .

Spécifications

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dwmapi.h
Bibliothèque Dwmapi.lib
DLL Dwmapi.dll; Uxtheme.dll