找回密码
 加入
搜索
查看: 2729|回复: 1

[图形处理] 今天又有新问题,关于皮肤+按钮图标的问题

[复制链接]
发表于 2010-6-22 22:30:19 | 显示全部楼层 |阅读模式
本帖最后由 不死草 于 2010-6-23 08:17 编辑
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <ListViewConstants.au3>
#include <ProgressConstants.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
Opt("TrayMenuMode", 1) ;这里是设置任务栏图标的菜单,AU3默认的是点击后暂停脚本,使用这个后将取消默认值,值保留现在脚本里面的菜单和操作

;;;皮肤贼如代码-------从这里开始-----------------------------------------------////
FileInstall("USkin.dll", @TempDir & "\USkin.Dll");这里是将脚本目录里面的Uskin.dll镶入到EXE文件里面,当EXE文件运行的时候自动将文件放置临时目录【@TempDir】里面运行。
FileInstall("Skin.msstyles", @TempDir & "\Skin.msstyles")        ;这里是将脚本目录里面的【Skins\Skin.msstyles】文件镶入到EXE文件里面,当EXE文件运行的时候自动将文件放置临时目录【@TempDir】里面运行。
$skins = @TempDir & "\Skin.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)        ;启用皮肤
;;;皮肤贼如代码-------到这里结束-----------------------------------------------////
Local $iIcon = 125, $btn, $x = 1
$patchmp3 = IniRead("config.ini","路径","patch","")
$patchkugou = IniRead("config.ini","KuGou","patch","")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("音乐欣赏", 226, 162, 361, 181)
$Group1 = GUICtrlCreateGroup("", 8, 0, 209, 153)
$Button2 = GUICtrlCreateButton("音乐分类", 32, 64, 163, 33)
$Button3 = GUICtrlCreateButton("打开KuGou", 32, 112, 163, 33)
$hImage = _GUIImageList_Create(32, 32, 5, 3, 6);创建图标窗口
_GUIImageList_AddIcon($hImage, "shell32.dll", 6, True);提取图标并写入到$hImage里面
$Button1 = GUICtrlCreateButton("随便听听", 32, 16, 163, 33)
_GUICtrlButton_SetImageList($Button1, $hImage, 0, 15);为$Button1添加图标
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
        $msg = GUIGetMsg()
        Select
    Case $msg = $GUI_EVENT_CLOSE
                Exit (Quit())
                Case $msg = $Button1
                        Run(@ComSpec & ' /c start '&$patchmp3&"\随便听听.ttpl","",@SW_HIDE)
                Case $msg = $Button2
                        Run(@ComSpec & ' /c start '&$patchmp3,"",@SW_HIDE)
                Case $msg = $Button3
                        Run($patchkugou)
EndSelect
WEnd

Func Quit()
        GUISetState(@SW_HIDE)        ;这里先将界面隐藏起来,因为要先关闭皮肤后才关闭软件,所以隐藏界面后关闭皮肤的话就不会看到没有皮肤的界面了。
        DllCall($Dll_, "int", "USkinRemoveSkin")        ;这里是关闭皮肤
        DllCall($Dll_, "int", "USkinExit")                        ;这里是退出皮肤调用的DLL
        DllClose($Dll_)                        ;关闭DLL文件调用
        FileDelete( @TempDir & "\Skins\Skin.msstyles")                ;删除临时目录里面的皮肤文件
        FileDelete(@TempDir & "\Uskin.dll")                ;删除临时目录里面的USkin.dll文件
        Exit                        ;退出脚本(关闭软件)
EndFunc   ;==>Quit
忘记说问题了,不好意思。问题就是我加载了皮肤,
$hImage = _GUIImageList_Create(32, 32, 5, 3, 6);创建图标窗口
_GUIImageList_AddIcon($hImage, "shell32.dll", 6, True);提取图标并写入到$hImage里面
$Button1 = GUICtrlCreateButton("随便听听", 32, 16, 163, 33)
_GUICtrlButton_SetImageList($Button1, $hImage, 0, 15);为$Button1添加图标
这个地方给按钮加图标就不能显示了,把皮肤去掉就能正常显示。。。

本帖子中包含更多资源

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

×
发表于 2010-6-23 00:19:14 | 显示全部楼层
只发了代码,怎么没有说什么问题?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 21:46 , Processed in 0.080205 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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