找回密码
 加入
搜索
查看: 3375|回复: 8

[GUI管理] 大家来讨论下GUI界面在皮肤下有什么好的打开和退出效果!!

  [复制链接]
发表于 2010-11-19 19:29:31 | 显示全部楼层 |阅读模式
大家来讨论下GUI界面在皮肤下有什么好的打开和退出效果!!

被这个问题困惑了很久了。。
不管用什么皮肤
如果用类型下面这种特效,皮肤的框框还是在,如图


DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $form1, "int", 300, "long", 0x00050010)


大家有其它的什么好的方法么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-11-19 19:44:39 | 显示全部楼层
路过,帮顶。调用皮肤是这样调啊?
 楼主| 发表于 2010-11-19 19:49:49 | 显示全部楼层
回复 2# tryhi

这是特效  不是调用皮肤
我是说调用了皮肤后再用特效   
这时在关闭的时候,外边框一直在,特效只在里面一圈有效!
发表于 2010-11-19 19:56:32 | 显示全部楼层
哎!不懂这些。。。。
发表于 2010-11-19 19:59:38 | 显示全部楼层
不使用透明皮肤就不会出现此问题了。
发表于 2010-11-19 20:37:06 | 显示全部楼层
这个问题我也有发现过,只要没有皮肤就没事了。~GUI效果里有一个UDF可以实现一些效果 。
 楼主| 发表于 2010-11-19 23:14:28 | 显示全部楼层
回复 5# 马甲


    跟透明么关系       只要加皮肤就有这问题!
发表于 2010-11-20 01:03:20 | 显示全部楼层
;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 ;==> _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
 楼主| 发表于 2010-11-21 11:02:10 | 显示全部楼层
回复 8# netegg


    回楼上的,你这个UDF就一句话有效
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $i_duration, "long", $i_mode)

还是 那问题,

好像除了先去除皮肤没有其它办法!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 01:13 , Processed in 0.080798 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表