换肤问题求助。
本帖最后由 guland 于 2010-6-23 16:39 编辑刚换了 guland老大的Vista Style,发现一个问题,就是在调用guictrlsetdata()函数更新label的文本时不能及时显现效果,需要将鼠标在别处点击一下或者点击其他控件才能刷新,这是什么原因啊? 回复 1# flyingrabbit
沙发自己做 观摩一下,看看怎么样 本帖最后由 guland 于 2010-6-23 09:37 编辑
回复 1# flyingrabbit
我测试没有问题啊,检查一下你的源码是不是哪里出错了啊
这垃圾录像软件透明皮肤录不上....我录像里面就是用的vista皮肤
老大以下是源码。我的机子上还是不行。我从三层函数调用到直接设置都不行。老大帮忙看看。谢谢先。
#include <String.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
Global $id_init_window ;数据初始化窗口ID
Global $id_init_button_tz ;调整内外网URL按键ID
Global $id_init_radio_ip_ww ;外网选择框ID
Global $id_init_radio_ip_nw ;内网选择框ID
Global $id_init_button_cancel ;"取消"按键ID
Global $id_init_button_start ;"开始"按键ID
;外网URL
Global $url_net_ex="http://192.168.1.1:9080/SEWeb"
;内网URL
Global $url_net_in="http://192.168.1.1:9080/SEWeb"
Dim $dll
$re1 = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
$re2 = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
FileInstall("SkinCrafterDll.dll", @TempDir & "\SkinCrafterDll.dll", 1)
FileInstall("WinSenven.skf", @TempDir & "\WinSenven.skf", 1)
FileInstall("a.jpg", @TempDir & "\a.jpg", 1)
;定义要传递贵getURL函数的控件ID数组.数组-启用、禁止控件标志,0-禁止,1-启用;-数组中包含的控件ID数量
Dim $controlID
;创建登陆以及录入项目选择窗口
$id_init_window=GUICreate("登陆以及录入项目选择",700,460,-1,-1)
_SkinGUI(@TempDir & "\SkinCrafterDll.dll", @TempDir & "\WinSenven.skf", $id_init_window)
;创建“开始”按键。点此按键将开始数据初始化以及数据录入
$id_init_button_start=GUICtrlCreateButton("开始",490,425,80,25)
;创建“取消”按键。点此按键将推出程序
$id_init_button_cancel=GUICtrlCreateButton("取消",590,425,80,25)
;创建"数据库URL地址选择"组控件
GUICtrlCreateGroup("数据库URL地址选择",295,10,390,100)
GUIStartGroup()
$id_init_radio_ip_ww=GUICtrlCreateRadio("(*)外网:"&$url_net_ex,305,30,270,20)
$id_init_radio_ip_nw=GUICtrlCreateRadio("内 网:"&$url_net_in,305,55,270,20)
$id_init_button_tz_w=GUICtrlCreateButton("调整",590,30,80,20)
$id_init_button_tz_n=GUICtrlCreateButton("调整",590,55,80,20)
GUICtrlCreateLabel("说明:如果您要调整内外网的地址请点击右边的“调整”按键:",305,85,370,20)
;默认外网连接
GUICtrlSetState($id_init_radio_ip_ww,$GUI_CHECKED)
GUISetState(@SW_SHOW)
While 1
Dim $url_string
$msg=GUIGetMsg()
Select
Case $msg=$GUI_EVENT_CLOSE Or $msg=$id_init_button_cancel
;GUIDelete($id_init_window)
_WinAPI_AnimateWindow ($id_init_window, BitOR($AW_BLEND, $AW_HIDE),500)
Exit
Case $msg=$id_init_button_tz_w
;调整外网url
;$url_string=ajustURL($controlID)
$url_string="tiaozheng"
GUICtrlSetData($id_init_radio_ip_ww,"内网:"&$url_string)
Case $msg=$id_init_button_tz_n
;调整外网url
;$url_string=ajustURL($controlID)
$url_string="tiaozheng"
GUICtrlSetData($id_init_radio_ip_nw,"内网:"&$url_string)
;如果返回值不为空,则设置相应数值,并修改config文件
If $url_string<>"" Then
;GUICtrlSetData($id_init_radio_ip_nw,"内网:"&$url_string)
;初始化内网url
$url_net_in=$url_string
EndIf
Case $msg=$id_init_button_start
EndSelect
WEnd
;定义皮肤函数
Func _SkinGUI($SkincrafterDll, $SkincrafterSkin, $Handle)
$dll = DllOpen($SkincrafterDll)
DllCall($dll, "int:cdecl", "InitLicenKeys", "wstr", "10", "wstr", "10", "wstr", "10@10.com", "wstr", "10")
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 回复 5# flyingrabbit
晕了...
之前你说是修改label,我测试了一下确实没问题,看了你的源码才知道你是要修改Radio的文本,
我测试了问题跟你说的一样,这应该是皮肤插件对AU3支持不好,论坛里面还有几种皮肤插件你可以试试
都支持vista皮肤的 谢谢老大回复。这点小事也能引起您的重视,非常感谢!!我先试试其他的皮肤。 测试成功!在调用guictrlsetdata()之后再调用guictrlsetstate()刷新一次就行了 {:face (319):}{:face (270):}{:face (411):}{:face (319):}
结贴了。
页:
[1]