UDF > WinAPIEx > GDI > Desktop Window Manager >


_WinAPI_DwmUpdateThumbnailProperties

Spécifie les propriétés d'une miniature du Desktop Window Manager (DWM)

#include <WinAPIGdi.au3>
_WinAPI_DwmUpdateThumbnailProperties ( $hThumbnail [, $bVisible = True [, $bClientAreaOnly = False [, $iOpacity = 255 [, $tRectDest = 0 [, $tRectSrc = 0]]]]] )

Paramètres

$hThumbnail Handle de la miniature dont vous voulez récupérer la taille de la fenêtre source.
$bVisible [optionnel] Spécifie si la miniature doit être visible ou invisible, les valeurs valides sont:
    True - Visible (par défaut).
    False - Invisible.
$bClientAreaOnly [optionnel] Spécifie si l'utilisation de la miniature est restreinte à la zone cliente ou à la fenêtre entière, les valeurs valides sont:
    True - Utilise seulement la zone cliente de la source.
    False - Utilise la fenêtre entière (par défaut).
$iOpacity [optionnel] L'opacité avec laquelle faire le rendu de la miniature. 0 est la transparence complète tandis que 255 (par défaut) est complètement opaque.
$tRectDest [optionnel] La structure $tagRECT contenant le rectangle dans la fenêtre de destination où la vignette sera rendue.
Par défaut, la taille de ce rectangle est égale à la taille de la source de la miniature DWM que retourne la fonction _WinAPI_DwmQueryThumbnailSourceSize().
$tRectSrc [optionnel] La structure $tagRECT contenant le rectangle qui spécifie la région de la fenêtre source à utiliser comme miniature.
Par défaut, la fenêtre entière est utilisée comme miniature.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 et définit @error <> 0, @extended contient le code d'erreur HRESULT.

Remarques

Une transition avec miniature créée par _WinAPI_DwmRegisterThumbnail() n'aura pas de rendue dans la fenêtre de destination jusqu'à ce que cette fonction soit appelée.
Les appels suivants mettront à jour la miniature en accord avec les propriétés.

Cette fonction nécessite Windows Vista ou une version supérieure.

En relation

_WinAPI_DwmQueryThumbnailSourceSize, _WinAPI_DwmRegisterThumbnail

Voir aussi

Consultez DwmUpdateThumbnailProperties dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIMisc.au3>

If Not _WinAPI_DwmIsCompositionEnabled() Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', 'Nécessite Windows Vista ou une version supérieure avec le thème Aero installé.')
    Exit
EndIf

Run(@SystemDir & '\calc.exe')
Local $hWnd = WinWaitActive("[CLASS:CalcFrame]", '', 3)
If Not $hWnd Then
    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 totalité de la fenêtre. Vous devez appeler cette fonction chaque fois que la composition DWM est activée.
_WinAPI_DwmExtendFrameIntoClientArea($hForm)

; Crée une relation de miniature DWM (2:1)
Local $hThumbnail = _WinAPI_DwmRegisterThumbnail($hForm, $hWnd)
Local $tSIZE = _WinAPI_DwmQueryThumbnailSourceSize($hThumbnail)
Local $iWidth = DllStructGetData($tSIZE, 1)
Local $iHeight = DllStructGetData($tSIZE, 2)
Local $tDestRect = _WinAPI_CreateRectEx((400 - $iWidth / 2) / 2, (400 - $iHeight / 2) / 2, $iWidth / 2, $iHeight / 2)
Local $tSrcRect = _WinAPI_CreateRectEx(-20, -20, $iWidth + 40, $iHeight + 40)
_WinAPI_DwmUpdateThumbnailProperties($hThumbnail, 1, 0, 255, $tDestRect, $tSrcRect)

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

WinClose("[CLASS:CalcFrame]", "")