找回密码
 加入
搜索
查看: 9303|回复: 15

[原创] GUI:利用.msstyles换肤窗口

 火.. [复制链接]
发表于 2011-6-2 15:04:39 | 显示全部楼层 |阅读模式
#cs ____________________________________
 
 脚本目的:利用.msstyles换肤窗口
    准备工作:
                1.必须文件:皮肤文件.msstyles和USkin.dll;
    窗口换肤过程:
                1.fileinstall()所需文件;
                2.定义变量$skins和$DLL_存储换肤文件;
                3.利用DLLCALL()启用皮肤。
        注意事项:
                1。注意用fileinstall()载入文件的源路径必须是字符不能有变量;
                2.注意路径“\”符号必须存在,否则因路径导致无法找到更换皮肤所需文件;
                3.注意退出时将载入文件删除。
        特色:
                1.通过样式BitOR($WS_SYSMENU, $WS_POPUP, $WS_POPUPWINDOW, $WS_BORDER), $WS_EX_TOOLWINDOW的使用将窗口3个最大(小)话按钮拿掉;
                2.通过DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Form1, "int", 450, "long", 0x00050010)实现退出窗口逐渐隐去效果
                3.创建TAB加样式 ,$TCS_VERTICAL,就竖排显示,但必须#include <TabConstants.au3>的支持
                4.学会利用GUICtrlCreateLabel()创建横线和竖线,样式分别为$SS_ETCHEDHORZ和$SS_ETCHEDVERT 
#ce _______________脚本开始_________________

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
FileInstall("USkin.dll", @TempDir & "\USkin.Dll") ;将USkin.dll载入到临时目录下
FileInstall("sprout.msstyles", @TempDir & "\sprout.msstyles");将sprout.msstyles载入到临时目录下
$skins = @TempDir & "\sprout.msstyles" ;这里设定【$skins】为皮肤路径
$Dll_ = DllOpen(@TempDir & "\USkin.dll") ;这里设定【$Dll_】为皮肤调用文件【USkin.dll】的路径
DllCall($Dll_, "int", "USkinInit", "str", "Null", "str", "NULL", "str", $skins) ;载入皮肤到DLL返回值
DllCall($Dll_, "int", "USkinLoadSkin", "str", $skins) ;启用皮肤
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 600, 447, 192, 124)
GUICtrlCreatePic("setup1.jpg",-1,-1)
GUICtrlCreatePic("setup1.jpg",150,-1)
GUICtrlCreatePic("setup1.jpg",300,-1)
GUICtrlCreatePic("setup1.jpg",448,-1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Quit()

        EndSwitch
WEnd
Func Quit()
        GUISetState(@SW_HIDE) ;这里先将界面隐藏起来,因为要先关闭皮肤后才关闭软件,所以隐藏界面后关闭皮肤的话就不会看到没有皮肤的界面了。
        DllCall($Dll_, "int", "USkinRemoveSkin") ;这里是关闭皮肤
        DllCall($Dll_, "int", "USkinExit") ;这里是退出皮肤调用的DLL
        DllClose($Dll_) ;关闭DLL文件调用
        ;FileDelete($skins) ;删除临时目录里面的皮肤文件
        ;fileDelete(@ScriptDir& "\Uskin.dll") ;删除临时目录里面的USkin.dll文件
        Exit ;退出脚本(关闭软件)
EndFunc   ;==>Quit
发表于 2011-6-2 15:20:01 | 显示全部楼层
注释很详细,表示感谢!!!
发表于 2011-6-2 16:52:38 | 显示全部楼层
好贴,顶起来
发表于 2011-6-2 21:45:02 | 显示全部楼层
好贴,顶起来
发表于 2011-6-3 10:39:00 | 显示全部楼层
USkin.dll能提供下这个文件吗?
 楼主| 发表于 2011-6-3 11:08:04 | 显示全部楼层
回复 5# xiaozui
论坛搜索!
发表于 2011-6-3 11:08:37 | 显示全部楼层
USkin.dll论坛有的吧,我不知道怎么上传附件给你。
发表于 2011-10-24 15:12:59 | 显示全部楼层
谢谢楼主
MARK
发表于 2012-5-7 22:29:34 | 显示全部楼层
这个太实在了,好帖要好好保留啊。
发表于 2012-5-15 14:43:18 | 显示全部楼层
注释很详细,表示感谢
发表于 2013-12-26 09:34:58 | 显示全部楼层
执行到
DllClose($Dll_) ;关闭DLL文件
时要报错
发表于 2013-12-26 09:53:52 | 显示全部楼层
编译后咋没效果呢?
发表于 2013-12-28 12:19:31 | 显示全部楼层
收藏學習了,感謝~
发表于 2013-12-28 13:36:43 | 显示全部楼层
顶个.....
发表于 2014-1-3 09:37:18 | 显示全部楼层
谢谢楼主分享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-5 14:19 , Processed in 0.076509 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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