找回密码
 加入
搜索
查看: 3395|回复: 7

[系统综合] EXE启动带旋转出入

  [复制链接]
发表于 2010-11-30 10:10:07 | 显示全部楼层 |阅读模式
请问AU3写的文件、运行EXE时带有特效旋转特效、变化进出、、
请高手指点。
发表于 2010-11-30 10:12:13 | 显示全部楼层
本帖最后由 yhxhappy 于 2010-11-30 10:17 编辑

以下内容是很久以前在网上找到的,楼主看看,或许有帮助

API实现窗口透明、滑动、淡入淡出等动画效果(dingamao)  
AW_HOR_POSITIVE (0x00000001) '从左到右打开窗口
AW_HOR_NEGATIVE (0x00000002 ) '从右到左打开窗口
AW_VER_POSITIVE (0x00000004) '从上到下打开窗口
AW_VER_NEGATIVE (0x00000008) '从下到上打开窗口
AW_CENTER    (0x00000010) '若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。但我的感觉是后者的效果不明显
AW_HIDE     (0x00010000) '在窗体卸载时若想使用本函数就得加上此常量
AW_ACTIVATE   (0x00020000) '在窗体通过本函数打开后,默认情况下会失去焦点,除非加上本常量
AW_SLIDE     (0x00040000) '使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
AW_BLEND     (0x00080000) '淡入淡出效果

至于各个参数在使用时还有什么限制,比如使用哪个标志时,哪一个标志会被忽略,请大家认真查查API手册。
那么好,现在我们先来试试最简单的淡出效果。
$hwnd = GUICreate("Animate Window", 300, 300)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000)
GUISetState()

动画的显示时间参数,我设为1000,也就是1秒,这是为了看得清楚些,大家可以根据实际需要更改。
大家可以先运行看看,如何,效果不错吧。

刚才举的例子只是在dwFags标志中用了一个单独的参数,可别忘记了,API手册中还说了很重要的一点:这个参数可以是一个或多个下列标志的组合。
好,举个例子~
$hwnd = GUICreate("Animate Window", 300, 300)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040004)
GUISetState()

出现的是从上到下滑动打开窗口,为什么呢,因为0x00040004=0x00000004+0x00040000,也就是相当于AW_VER_POSITIVE与AW_SLIDE的组合。
再给大家来一个是三个标志组合的例子:
$hwnd = GUICreate("Animate Window", 300, 300)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040006)
GUISetState()
嘿嘿,这次的效果就比较神奇了,乃是界面从左上角出现,滑动至左下角,因为0x00040006=0x00000004+0x00040000+0x00000002
呃,这里有必要说明一下,大家在运算的时候,最好不要过于自信,直接就相加了,有时会达不到预期的效果,为什么呢,可别忘了,这个是16进制的运算,不是我们平日习惯的10进制运算,在没有把握的时候,推荐打开开始菜单里的计算器,切换成16进制的模式来进行运算。
嗯,到这里就讲得差不多了,其实还有许多种组合方式,大家都可以自己去尝试!
最后再给大家讲一下我的发现,刚才大家可能已经发现了,GUISetState()我是放在DLLCALl的后面,如果放在前面呢?
嗯,我发现很多情况下,如果是放在前面,那么dwFags里的组合项中,最好是加上AW_HIDE这个标志,否则看不出效果,而且经过这样处理之后,效果跟原来可是不一样的,以刚才的第一个最简单的例子来说,修改为这样:  
$hwnd = GUICreate("Animate Window", 300, 300)
GUISetState()
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000)
0x00090000=0x00090000+0x00010000,也就是加多了一个AW_HIDE,大家看看,效果是不是不一样了?

评分

参与人数 1金钱 +20 贡献 +3 收起 理由
.個朲綉√ + 20 + 3 非常感谢,我也需要。

查看全部评分

发表于 2010-11-30 10:44:09 | 显示全部楼层
这个不错,效果挺不错的,
发表于 2010-11-30 15:37:09 | 显示全部楼层
很好,挺有效果的。
发表于 2010-11-30 17:10:41 | 显示全部楼层
窗口效果, 学习了,谢谢
发表于 2010-12-9 14:27:47 | 显示全部楼层
不错的效果
发表于 2010-12-9 16:39:58 | 显示全部楼层
回复 2# yhxhappy


    高人也,收藏备用~~
发表于 2010-12-9 21:11:21 | 显示全部楼层
顶一下高手,学习下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-21 18:46 , Processed in 0.079838 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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