UpdateLayeredWindow, fonction (winuser.h)
Met à jour la position, la taille, la forme, le contenu et la transparence d'une fenêtre superposée.
Syntaxe
BOOL UpdateLayeredWindow(
[in] HWND hWnd,
[in, optional] HDC hdcDst,
[in, optional] POINT *pptDst,
[in, optional] SIZE *psize,
[in, optional] HDC hdcSrc,
[in, optional] POINT *pptSrc,
[in] COLORREF crKey,
[in, optional] BLENDFUNCTION *pblend,
[in] DWORD dwFlags
);
Paramètres
[in] hWnd
Type : HWND
Handle vers une fenêtre en couches. Une fenêtre en couches est créée en spécifiant WS_EX_LAYERED lors de la création de la fenêtre avec la fonction CreateWindowEx .
Windows 8 : le style WS_EX_LAYERED est pris en charge pour les fenêtres de niveau supérieur et les fenêtres enfants. Les versions précédentes de Windows prennent en charge WS_EX_LAYERED uniquement pour les fenêtres de niveau supérieur.
[in, optional] hdcDst
Type : HDC
Handle vers un contrôleur de domaine pour l’écran. Ce handle est obtenu en spécifiant NULL lors de l’appel de la fonction GetDC . Il est utilisé pour la correspondance des couleurs de palette lorsque le contenu de la fenêtre est mis à jour. Si hdcDst a la valeur NULL, la palette par défaut est utilisée.
Si hdcSrc a la valeur NULL, hdcDst doit avoir la valeur NULL.
[in, optional] pptDst
Type : POINT*
Pointeur vers une structure qui spécifie la nouvelle position de l’écran de la fenêtre superposée. Si la position actuelle ne change pas, pptDst peut avoir la valeur NULL.
[in, optional] psize
Type : SIZE*
Pointeur vers une structure qui spécifie la nouvelle taille de la fenêtre en couches. Si la taille de la fenêtre ne change pas, psize peut être NULL. Si hdcSrc a la valeur NULL, psize doit être NULL.
[in, optional] hdcSrc
Type : HDC
Handle vers un contrôleur de domaine pour la surface qui définit la fenêtre en couches. Ce handle peut être obtenu en appelant la fonction CreateCompatibleDC . Si la forme et le contexte visuel de la fenêtre ne changent pas, hdcSrc peut avoir la valeur NULL.
[in, optional] pptSrc
Type : POINT*
Pointeur vers une structure qui spécifie l’emplacement de la couche dans le contexte de l’appareil. Si hdcSrc a la valeur NULL, pptSrc doit avoir la valeur NULL.
[in] crKey
Type : COLORREF
Structure qui spécifie la clé de couleur à utiliser lors de la composition de la fenêtre superposée. Pour générer un COLORREF, utilisez la macro RVB .
[in, optional] pblend
Type : BLENDFUNCTION*
Pointeur vers une structure qui spécifie la valeur de transparence à utiliser lors de la composition de la fenêtre en couches.
[in] dwFlags
Type : DWORD
Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Utilisez pblend comme fonction de fusion. Si le mode d’affichage est inférieur ou égal à 256 couleurs, l’effet de cette valeur est identique à l’effet de ULW_OPAQUE. |
|
Utilisez crKey comme couleur de transparence. |
|
Dessinez une fenêtre opaque en couches. |
|
Forcez l’échec de la fonction UpdateLayeredWindowIndirect si la taille de fenêtre actuelle ne correspond pas à la taille spécifiée dans le psize. |
Si hdcSrc a la valeur NULL, dwFlags doit être égal à zéro.
Valeur retournée
Type : BOOL
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Le contrôleur de domaine source doit contenir la surface qui définit le contenu visible de la fenêtre en couches. Par exemple, vous pouvez sélectionner une bitmap dans un contexte d’appareil obtenu en appelant la fonction CreateCompatibleDC .
Une application doit appeler SetLayout sur le contexte de l’appareil hdcSrc pour définir correctement le mode de mise en miroir. SetLayout miroir correctement tous les dessins dans un HDC tout en conservant correctement le glyphe de texte et l’ordre de direction bitmap (facultatif). Il ne peut pas modifier le dessin directement dans les bits d’une bitmap indépendante de l’appareil (DIB). Pour plus d’informations, consultez Disposition et mise en miroir des fenêtres.
La fonction UpdateLayeredWindow conserve l’apparence de la fenêtre à l’écran. Les fenêtres situées sous une fenêtre superposée n’ont pas besoin d’être repeintes lorsqu’elles sont découvertes en raison d’un appel à UpdateLayeredWindow, car le système les repeint automatiquement. Cela permet une animation fluide de la fenêtre superposée.
UpdateLayeredWindow met toujours à jour toute la fenêtre. Pour mettre à jour une partie d’une fenêtre, utilisez le WM_PAINT traditionnel et définissez la valeur de fusion à l’aide de SetLayeredWindowAttributes.
Pour de meilleures performances de dessin par la fenêtre superposée et toutes les fenêtres sous-jacentes, la fenêtre superposée doit être aussi petite que possible. Une application doit également traiter le message et recréer ses fenêtres superposées lorsque la profondeur de couleur de l’affichage change.
Pour plus d’informations, consultez Fenêtres en couches.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Ensemble d’API | ext-ms-win-ntuser-window-l1-1-1 (introduit dans Windows 8.1) |
Voir aussi
Conceptuel
Autres ressources
Référence