Func buttonAnimation($hWnd, $idControl, $introMode)
- nombre de la gui
- id del boton
- modo de animacion
Func sVibrar ($hWnd, $idControl)
- nombre de la gui
- id del boton
Espero les pueda servir, es utilizable sin importar la posición de los botones; pueden modificarlo a su gusto y si desean mejorarlo enhorabuena.
Saludos
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUICloseOnESC", 0)
Opt("GUIOnEventMode", 1)
$myGui = GUICreate("Ejemplo", 308, 415, -1, -1)
GUISetBkColor(0x646464)
$Label2 = GUICtrlCreateLabel("Label2", 8, 88, 36, 17)
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Label3 = GUICtrlCreateLabel("Label3", 8, 136, 36, 17)
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Label4 = GUICtrlCreateLabel("Label4", 8, 176, 36, 17)
GUICtrlSetBkColor(-1, 0xA6CAF0)
$Input1 = GUICtrlCreateInput("Input1", 56, 88, 97, 21)
$Input2 = GUICtrlCreateInput("Input2", 56, 136, 97, 21)
$Input3 = GUICtrlCreateInput("Input3", 56, 176, 97, 21)
$Label1 = GUICtrlCreateLabel("Mi titulo", 8, 16, 290, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFFFFFF)
$List1 = GUICtrlCreateList("", 168, 88, 121, 110)
$Button1 = GUICtrlCreateButton("Salir", 96, 352, 107, 41)
GUICtrlSetOnEvent(-1, "_cerrarInterfaz")
GUISetOnEvent($GUI_EVENT_RESTORE, "_restoreInterfaz")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "_minimizarInterfaz")
GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrarInterfaz")
;Oculto todos los botones para que tenga una especie de entrada
For $i = $Label2 To $Button1
GUICtrlSetState($i, $GUI_HIDE)
Next
;~ ; esto lo pueden personalizar
GUISetState(@SW_SHOW)
Sleep(500)
;animacion------------------------------------------
buttonAnimation($myGui, $Label1, "down")
buttonAnimation($myGui, $Label2, "left")
buttonAnimation($myGui, $Input1, "right")
buttonAnimation($myGui, $Label3, "left")
buttonAnimation($myGui, $Input2, "right")
buttonAnimation($myGui, $Label4, "left")
buttonAnimation($myGui, $Input3, "right")
buttonAnimation($myGui, $List1, "right")
buttonAnimation($myGui, $Button1, "up")
;----------------------------------------------------
sVibrar($myGui, $Input1)
sVibrar($myGui, $Input2)
sVibrar($myGui, $Input3)
;----------------------------------------------------
While 1
Sleep(100)
WEnd
;con el STEP o el SLEEP se acelera la animacion
Func buttonAnimation($hWnd, $idControl, $introMode)
Local $cPosDos
;--------------- INFO SIZE BUTTON ----------------------------
Local $cPos = ControlGetPos($hWnd, "", $idControl)
ConsoleWrite("Position: " & $cPos[0] & ", " & $cPos[1] & @CRLF)
ConsoleWrite("Size: " & $cPos[2] & ", " & $cPos[3] & @CRLF & @CRLF)
Local $aClientSize = WinGetClientSize($hWnd) ; toma referencia al tamaño de la ventana
ConsoleWrite("SIZE WINDOWS" & @CRLF)
ConsoleWrite("Width: " & $aClientSize[0] & @CRLF & "Height: " & $aClientSize[1] & @CRLF & @CRLF)
;--------------- INTRO ---------------------------------------
If $introMode = "right" Then ; *** Ingreso por la derecha
ControlMove($hWnd, "", $idControl, $aClientSize[0], $cPos[1])
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[0] To $cPos[0] Step -10 ; $cPos[0] es la posicion X que se obtuvo primero
Sleep(10)
ControlMove($hWnd, "", $idControl, $i, $cPos[1])
Next
ElseIf $introMode = "left" Then ; *** Ingreso por la izquierda
ControlMove($hWnd, "", $idControl, -($cPos[0] + $cPos[2]), $cPos[1]) ; se mueve a la izquierda para de ahi salir
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[0] To $cPos[0] Step 3 ; $cPos[0] es la posicion X que se obtuvo primero
Sleep(10)
ControlMove($hWnd, "", $idControl, $i, $cPos[1])
Next
ElseIf $introMode = "down" Then ; *** Ingreso desde abajo
ControlMove($hWnd, "", $idControl, $cPos[0], -1 + (-$cPos[3]))
$cPosDos = ControlGetPos($hWnd, "", $idControl)
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[1] To $cPos[1] Step 10
Sleep(25)
ControlMove($hWnd, "", $idControl, $cPosDos[0], $i)
Next
ElseIf $introMode = "up" Then ; *** Ingreso de arriba hacia abajo
ControlMove($hWnd, "", $idControl, $cPos[0], $aClientSize[1])
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[1] To $cPos[1] Step -10
Sleep(25)
ControlMove($hWnd, "", $idControl, $cPosDos[0], $i)
Next
ElseIf $introMode = "down-out" Then ; ; *** Salida por abajo
; cuando el efecto es de salida se debe
;restablecer en HIDE a la posicion original
For $i = $cPos[1] To $aClientSize[1] Step 5
Sleep(10)
ControlMove($hWnd, "", $idControl, $cPos[0], $i)
Next
GUICtrlSetState($idControl, $GUI_HIDE) ; lo oculta y
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1]) ; restablece a la posición para el nuevo efecto que se desee aplicar
ElseIf $introMode = "up-out" Then ; *** Salida por arriba
For $i = $cPos[1] To -1 + (-$cPos[3]) Step -5
Sleep(10)
ControlMove($hWnd, "", $idControl, $cPos[0], $i)
Next
GUICtrlSetState($idControl, $GUI_HIDE)
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1])
ElseIf $introMode = "left-out" Then ; *** Salida por la izquierda
For $i = $cPos[0] To -1 + (-$cPos[2]) Step -8
Sleep(10)
ControlMove($hWnd, "", $idControl, $i, $cPos[1])
Next
GUICtrlSetState($idControl, $GUI_HIDE)
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1])
ElseIf $introMode = "right-out" Then ; *** Salida por la derecha
For $i = $cPos[0] To $aClientSize[0] Step 10
Sleep(10)
ControlMove($hWnd, "", $idControl, $i, $cPos[1])
Next
GUICtrlSetState($idControl, $GUI_HIDE)
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1])
EndIf
EndFunc ;==>buttonAnimation
Func sVibrar($hWnd, $idControl) ; simulación de vibrar
;--------------- INFO SIZE BUTTON ----------------------------
Local $cPos = ControlGetPos($hWnd, "", $idControl)
;--------------- SHAKE --------------------------------------
For $i = 0 To 7
ControlMove($hWnd, "", $idControl, $cPos[0] - 4, $cPos[1])
Sleep(20)
ControlMove($hWnd, "", $idControl, $cPos[0] + 4, $cPos[1])
Sleep(20)
Next
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1])
EndFunc ;==>sVibrar
Func _cerrarInterfaz()
buttonAnimation($myGui, $Label1, "up-out")
buttonAnimation($myGui, $Label2, "left-out")
buttonAnimation($myGui, $Input1, "left-out")
buttonAnimation($myGui, $Label3, "left-out")
buttonAnimation($myGui, $Input2, "left-out")
buttonAnimation($myGui, $Label4, "left-out")
buttonAnimation($myGui, $Input3, "left-out")
buttonAnimation($myGui, $List1, "right-out")
buttonAnimation($myGui, $Button1, "down-out")
Sleep(200)
Exit
EndFunc ;==>_cerrarInterfaz
Func _minimizarInterfaz()
GUISetState(@SW_MINIMIZE, $myGui)
EndFunc ;==>_minimizarInterfaz
Func _restoreInterfaz()
GUISetState(@SW_RESTORE, $myGui)
EndFunc ;==>_restoreInterfaz