关于AU3窗口的设置问题
本帖最后由 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
先把自己写的贴出来,别人才好给你建议 问题一:叙述有误,建议检查
问题二:建议用一个GUI代替信息框… 回复 2# tianya1631
源码来了,刚才不是用自己的电脑,手上没源码。 本帖最后由 cjb292721 于 2012-10-27 22:28 编辑
回复 3# annybaby
其实是这样的,我用的皮肤到了Msgbox就有点难看,“确定”旁边是白色的,标题栏的图标也没了。想用SkinBuilder来修改,又不知要改哪里,怎么改。所以就想剃掉Msgbox的皮肤。
回复 5# cjb292721
所以你直接说原因可能会得到更好的建议~~
skf格式的皮肤是会有这个问题的,所以用she格式的皮肤会好些~~ 楼主换种方式加载皮肤吧 回复 6# annybaby
看了she皮肤的应用实例,不过就是找不到she皮肤怎么更改皮肤的色调、饱和度、亮度、窗体的透明度、菜单的透明度.....
页:
[1]