UDF > WinAPIEx > System > Windows >


_WinAPI_UpdateLayeredWindowEx

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]] )

Param�tres

$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).

Valeur de retour

Succ�s: Retourne True
�chec: Retourne False

Remarques

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.

Exemple

#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)