Permet un effet de flou arrière sur une fenêtre donnée
#include <WinAPIGdi.au3>
_WinAPI_DwmEnableBlurBehindWindow ( $hWnd [, $bEnable = True [, $bTransition = False [, $hRgn = 0]]] )
$hWnd | Handle de la fenêtre sur laquelle le flou derrière les données sera appliquée. |
$bEnable | [optionnel] Indique s'il faut inscrire ou désinscrire le handle de fenêtre pour un flou arrière DWM, les valeurs valides sont: True - Inscrit (par défaut). False - Désinscrit. |
$bTransition | [optionnel] Indique si la transition de coloration concerne les fenêtres maximisées, les valeurs valides sont: True - La fenêtre maximisée doit être colorée. False - Sinon (par défaut). |
$hRgn | [optionnel] La région dans la zone client dans laquelle appliquer le flou arrière. Une valeur de zéro (par défaut) appliquera le flou arrière à la zone cliente entière. |
Succès: | Retourne 1. |
Échec: | Retourne 0 et définit @error <> 0, @extended contient le code d'erreur HRESULT. |
Les valeurs alpha de la fenêtre sont honorées et le rendu du flou utilisera ces valeurs alpha.
Il est de la responsabilité de l'application de s'assurer que les valeurs alpha de tous les pixels de la fenêtre sont corrects.
Certaines fonctions GDI ne conservent pas les valeurs alpha, aussi des précautions doivent être prises lors de la présentation des fenêtres enfants parce que les valeurs alpha qu'elles contiennent sont imprévisibles.
Cette fonction doit être appelée chaque fois que la composition Desktop Window Manager (DWM) est activée.
Inscrivez le message WM_DWMCOMPOSITIONCHANGED pour la notification du changement de composition.
Cette fonction nécessite Windows Vista ou version ultérieure.
Consultez DwmEnableBlurBehindWindow dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPIGdi.au3> #include <WinAPIHObj.au3> #include <WinAPIMisc.au3> If Not _WinAPI_DwmIsCompositionEnabled() Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', 'Nécessite Windows Vista ou une version ultérieure avec le thème Aero installé.') Exit EndIf ; Crée une GUI Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 400, 400) GUISetBkColor(0) ; Crée l'effet "feuille de verre" pour la région spécifiée. Vous devez appeler cette fonction lorsque la composition DWM est activée. _WinAPI_DwmGetColorizationColor() Local $hRgn = _WinAPI_CreateEllipticRgn(_WinAPI_CreateRectEx(50, 50, 300, 300)) _WinAPI_DwmEnableBlurBehindWindow($hForm, 1, 0, $hRgn) If $hRgn Then _WinAPI_DeleteObject($hRgn) EndIf GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE