大家来讨论下GUI界面在皮肤下有什么好的打开和退出效果!!
大家来讨论下GUI界面在皮肤下有什么好的打开和退出效果!!被这个问题困惑了很久了。。
不管用什么皮肤
如果用类型下面这种特效,皮肤的框框还是在,如图
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $form1, "int", 300, "long", 0x00050010)
大家有其它的什么好的方法么? 路过,帮顶。调用皮肤是这样调啊? 回复 2# tryhi
这是特效不是调用皮肤
我是说调用了皮肤后再用特效
这时在关闭的时候,外边框一直在,特效只在里面一圈有效! 哎!不懂这些。。。。 不使用透明皮肤就不会出现此问题了。 这个问题我也有发现过,只要没有皮肤就没事了。~GUI效果里有一个UDF可以实现一些效果 。 回复 5# 马甲
跟透明么关系 只要加皮肤就有这问题! ;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 Then
SetError(1)
Return 0
EndIf
Return 1
EndFunc ;==> _WinAnimate()
#cs DEMO - For lazy guys like me - to copy paste
$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)
#ce 回复 8# netegg
回楼上的,你这个UDF就一句话有效
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $i_duration, "long", $i_mode)
还是 那问题,
好像除了先去除皮肤没有其它办法!
页:
[1]