Met à jour la transparence d'un bitmap d'une fenêtre de type Layered
#include <WinAPISysWin.au3>
_WinAPI_UpdateLayeredWindowEx ( $hWnd, $iX, $iY, $hBitmap [, $iOpacity = 255 [, $bDelete = False]] )
$hWnd | Handle d'une fenêtre Layered. Une fenêtre Layered est créée en spécifiant $WS_EX_LAYERED lors de sa création. |
$iX | La nouvelle position de la partie gauche de la fenêtre. |
$iY | La nouvelle position de la partie supérieure de la fenêtre. |
$hBitmap | Handle du bitmap qui sera défini dans la fenêtre Layered. |
$iOpacity | [optionnel] La valeur alpha de la transparence à utiliser sur l'ensemble du bitmap source. Par défaut, 255. |
$bDelete | [optionnel] Spécifie s'il faut supprimer le bitmap après mise à jour de la fenêtre, les valeurs valides sont: True - Le bitmap sera supprimé si la fonction réussit. False - Le bitmap ne sera pas supprimé, il faudra le libérer lorsque vous aurez terminé de l'utiliser (par défaut). |
Succès: | Retourne True |
Échec: | Retourne False |
Pour de meilleures performances de dessin par la fenêtre Layered et toutes les fenêtres au dessous, la fenêtre Layered devrait être aussi petite que possible.
Si $iX et $iY sont tout deux égaux à (-1), la position de la fenêtre actuelle ne changera pas.
#include <GDIPlus.au3> #include <Misc.au3> #include <WinAPIHObj.au3> #include <WinAPISysWin.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Local $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\Extras\Exclamation.png') Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), _GDIPlus_ImageGetWidth($hImage), _GDIPlus_ImageGetHeight($hImage), -1, -1, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST)) Local $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() GUISetState(@SW_SHOW) Local $iOpacity = 0, $iStep = 3 Do _WinAPI_UpdateLayeredWindowEx($hForm, -1, -1, $hBitmap, $iOpacity) $iOpacity += $iStep If ($iOpacity = 0) Or ($iOpacity = 255) Then $iStep = -$iStep Sleep(500) EndIf Sleep(10) Until _IsPressed('1B') _WinAPI_DeleteObject($hBitmap)