GUI:利用.msstyles换肤窗口
#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
注释很详细,表示感谢!!! 好贴,顶起来 好贴,顶起来 USkin.dll能提供下这个文件吗? 回复 5# xiaozui
论坛搜索! USkin.dll论坛有的吧,我不知道怎么上传附件给你。 谢谢楼主
MARK 这个太实在了,好帖要好好保留啊。 注释很详细,表示感谢 执行到
DllClose($Dll_) ;关闭DLL文件
时要报错 编译后咋没效果呢? 收藏學習了,感謝~ {:face (327):}顶个..... 谢谢楼主分享!
页:
[1]
2