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

[GUI管理] 关于AU3窗口的设置问题

  [复制链接]
发表于 2012-10-27 20:19:49 | 显示全部楼层 |阅读模式
本帖最后由 cjb292721 于 2012-10-27 22:29 编辑

问题1
$Form有个$Button3,能调出$Info。
$Info是帮助信息,有点像MsgBox,点确定就关闭了。
但重新点$Form的$Button3,就能再调出$Info。
我的做法是运行时先隐藏$Info,点击$Button3就显示$Info。
不过缺点就是,第一次显示$Info就有窗体弹出效果,之后就是直接闪现。
请问各位高手,$Info要怎样弄才能每次显示都有窗体弹出效果。

问题2
$Form1加载了skf皮肤,
点击$Button运行完命令后会有个MsgBox提示信息,
我想让MsgBox不应用皮肤,但$Form1要保留皮肤。
请问各位高手,这命令要怎么写?
FileInstall("SkinCrafterDll.dll",@TempDir&"SkinCrafterDll.dll",1)
FileInstall("Skin.skf",@TempDir&"Skin.skf",1)
FileInstall("Pic.bmp",@TempDir&"Pic.bmp",1)

$Form = GUICreate("Form", 420, 240, -1, -1)
Dim $dll,$Url
Dim $pf=@TempDir&"Skin.skf"
_SkinGUI(@TempDir&"SkinCrafterDll.dll", $pf, $Form)
_WaterCtrl_Startup(@TempDir&"Pic.bmp", $Form, '420,74')
$Button1 = GUICtrlCreateButton("确定(&O)", 166, 206, 75, 25)
$Button2 = GUICtrlCreateButton("取消(&C)", 245, 206, 75, 25)
$Button3 = GUICtrlCreateButton("帮助(&H)", 325, 206, 75, 25)
GUISetState(@SW_SHOW)

$Info = GUICreate("Help", 199, 202, -1, -1)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 199, 164, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
$Button = GUICtrlCreateButton("确定(&O)", 112, 170, 75, 25)
GUISetState(@SW_HIDE)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Quit()
                Case $Button1
                        MsgBox(0,"标题","文本")
                Case $Button2
                        Quit()
                Case $Button3
                        InfoCreate()
        EndSwitch
WEnd

_WaterCtrl_Shutdown()
GUIDelete()
Exit


Func InfoCreate()
        GUISwitch($Info)
        GUISetState(@SW_SHOW)
        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                GUISwitch($Info)
                                GUISetState(@SW_HIDE)
                                ExitLoop
                        Case $Button
                                GUISwitch($Info)
                                GUISetState(@SW_HIDE)
                                ExitLoop
                EndSwitch
        WEnd
EndFunc   ;==>InfoCreate

Func _SkinGUI($SkincrafterDll, $SkincrafterSkin, $Handle) 
   $Dll = DllOpen($SkincrafterDll) 
   DllCall($Dll, "int:cdecl", "InitLicenKeys", "wstr", "1", "wstr", "", "wstr", "1@1.com", "wstr", "1") 
   DllCall($Dll, "int:cdecl", "InitDecoration", "int", 1) 
   DllCall($Dll, "int:cdecl", "LoadSkinFromFile", "wstr", $SkincrafterSkin) 
   DllCall($Dll, "int:cdecl", "DecorateAs", "int", $Handle, "int", 25) 
   DllCall($Dll, "int:cdecl", "ApplySkin") 
EndFunc   ;==>_SkinGUI
GUISetState(@SW_SHOW)

Func Quit()
        GUISetState(@SW_HIDE)
        DllCall($dll, "int:cdecl", "DeInitDecoration")
        DllCall($dll, "int:cdecl", "RemoveSkin")
        DllClose($dll)
        FileDelete(@TempDir&"SkinCrafterDll.dll")
        FileDelete(@TempDir&"Skin.skf")
        FileDelete(@TempDir&"Pic.bmp")
    Exit
EndFunc   ;==>Quit
发表于 2012-10-27 21:10:27 | 显示全部楼层
先把自己写的贴出来,别人才好给你建议
发表于 2012-10-27 21:19:17 | 显示全部楼层
问题一:叙述有误,建议检查

问题二:建议用一个GUI代替信息框…
 楼主| 发表于 2012-10-27 22:17:47 | 显示全部楼层
回复 2# tianya1631


    源码来了,刚才不是用自己的电脑,手上没源码。
 楼主| 发表于 2012-10-27 22:26:51 | 显示全部楼层
本帖最后由 cjb292721 于 2012-10-27 22:28 编辑

回复 3# annybaby


    其实是这样的,我用的皮肤到了Msgbox就有点难看,“确定”旁边是白色的,标题栏的图标也没了。想用SkinBuilder来修改,又不知要改哪里,怎么改。所以就想剃掉Msgbox的皮肤。

本帖子中包含更多资源

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

×
发表于 2012-10-27 22:51:11 | 显示全部楼层
回复 5# cjb292721

所以你直接说原因可能会得到更好的建议~~

skf格式的皮肤是会有这个问题的,所以用she格式的皮肤会好些~~
发表于 2012-10-27 23:20:20 | 显示全部楼层
楼主换种方式加载皮肤吧
 楼主| 发表于 2012-10-28 00:47:15 | 显示全部楼层
回复 6# annybaby


    看了she皮肤的应用实例,不过就是找不到she皮肤怎么更改皮肤的色调、饱和度、亮度、窗体的透明度、菜单的透明度.....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 17:51 , Processed in 0.077279 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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