[Func] Effets sur votre GUI (_FadeGui et _WinAnimate)

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[Func] Effets sur votre GUI (_FadeGui et _WinAnimate)

#1

Message par Tlem »

Vous souhaitez créer des effets de fade in ou fade out sur vos GUI, alors utilisez cette fonction :

Code : Tout sélectionner

;===============================================================================
; Description:      Fade in or fade out a GUI.
; Parameter(s):     $hGui - The handle of the GUI to fade
;                   $Fade - The type of the fade to do.
;                           0 = Fade Out - 1 = Fade In
;                   $Speed - The speed of the fade (can be a float number).
; Requirement(s):   Requires Windows 2000/XP or later.
;                   Screen color must be greater or equal to 16-bit.
; Return Value(s):  On Success - Returns Non-zero
;                   On Failure - Returns 0
;
; Author(s):        Tlem
; Note(s):
; Example:          _FadeGui($MyGui, 1, 5)
;
;===============================================================================
Func _FadeGui($hGui, $Fade = 0, $Speed = 1)
    Local $Res
    ; FadeOut.
    If $Fade = 0 Then
        For $i = 255 To 0 Step -$Speed
            $Res = WinSetTrans ($hGui, "", $i )
        Next
        Return $Res
    ; FadeIn
    ElseIf $Fade = 1 Then
        For $i = 0 To 255 Step $Speed
            $Res = WinSetTrans ($hGui, "", $i )
        Next
        Return $Res
    ; Error Fade value
    Else
        Return 0
    EndIf
EndFunc
Exemple d'utilisation :

Code : Tout sélectionner

#include <GUIConstants.au3>

$MyGui = GUICreate("Ma fenêtre principale")
WinSetTrans ($MyGui, "", 0 )
GUISetState ()

_FadeGui($MyGui, 1, 5)

While 1
    $msg = GUIGetMsg()
   
    If $msg = $GUI_EVENT_CLOSE Then
        _FadeGui($MyGui, 0, 1)
        ExitLoop
    EndIf
Wend
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Func] _FadeGui - Effet de transparence sur votre GUI.

#2

Message par Tlem »

Voici aussi une autre fonction qui vous permettra de faire des effets sur votre GUI :

Code : Tout sélectionner

; Function _WinAnimate from Raindancer
; http://www.autoitscript.com/forum/index.php?showtopic=12224&view=findpost&p=84102

;CONSTANTS
Global Const $AW_FADE_IN = 0x00080000 ;fade-in
Global Const $AW_FADE_OUT = 0x00090000;fade-out
Global Const $AW_SLIDE_IN_LEFT = 0x00040001 ;slide in from left
Global Const $AW_SLIDE_OUT_LEFT = 0x00050002 ;slide out to left
Global Const $AW_SLIDE_IN_RIGHT = 0x00040002 ;slide in from right
Global Const $AW_SLIDE_OUT_RIGHT = 0x00050001 ;slide out to right
Global Const $AW_SLIDE_IN_TOP = 0x00040004 ;slide-in from top
Global Const $AW_SLIDE_OUT_TOP = 0x00050008 ;slide-out to top
Global Const $AW_SLIDE_IN_BOTTOM = 0x00040008 ;slide-in from bottom
Global Const $AW_SLIDE_OUT_BOTTOM = 0x00050004 ;slide-out to bottom
Global Const $AW_DIAG_SLIDE_IN_TOPLEFT = 0x00040005 ;diag slide-in from Top-left
Global Const $AW_DIAG_SLIDE_OUT_TOPLEFT = 0x0005000a ;diag slide-out to Top-left
Global Const $AW_DIAG_SLIDE_IN_TOPRIGHT = 0x00040006 ;diag slide-in from Top-Right
Global Const $AW_DIAG_SLIDE_OUT_TOPRIGHT = 0x00050009 ;diag slide-out to Top-Right
Global Const $AW_DIAG_SLIDE_IN_BOTTOMLEFT = 0x00040009 ;diag slide-in from Bottom-left
Global Const $AW_DIAG_SLIDE_OUT_BOTTOMLEFT = 0x00050006 ;diag slide-out to Bottom-left
Global Const $AW_DIAG_SLIDE_IN_BOTTOMRIGHT = 0x0004000a ;diag slide-in from Bottom-right
Global Const $AW_DIAG_SLIDE_OUT_BOTTOMRIGHT = 0x00050005 ;diag slide-out to Bottom-right
Global Const $AW_EXPLODE = 0x00040010 ;explode
Global Const $AW_IMPLODE = 0x00050010 ;implode

Func _WinAnimate($v_gui, $i_mode, $i_duration = 1000)
    DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $i_duration, "long", $i_mode)
    Local $ai_gle = DllCall('kernel32.dll', 'int', 'GetLastError')
    If $ai_gle[0] <> 0 Then
        SetError(1)
        Return 0
    EndIf
    Return 1
EndFunc
Exemple d'utilisation (La variable $i_duration peut être fixée pour gérer la durée de l'effet) :

Code : Tout sélectionner

#include <_winanimate.au3>

$hwnd = GUICreate("AnimateWindow - Demo", 300, 300)
_WinAnimate($hwnd, $AW_FADE_IN)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_FADE_OUT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_IN_LEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_OUT_LEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_IN_RIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_OUT_RIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_IN_TOP)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_OUT_TOP)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_IN_BOTTOM)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_SLIDE_OUT_BOTTOM)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_IN_TOPLEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_OUT_TOPLEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_IN_TOPRIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_OUT_TOPRIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_IN_BOTTOMLEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_OUT_BOTTOMLEFT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_IN_BOTTOMRIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_DIAG_SLIDE_OUT_BOTTOMRIGHT)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_EXPLODE)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Sleep(1500)
_WinAnimate($hwnd, $AW_IMPLODE)
ConsoleWrite('er: ' & @error & @LF & 'ex: ' & @extended & @CRLF)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre