iori2882 发表于 2011-10-10 15:43:11

GUI窗口只有在点过之后才出边框,还是没解决(已解决)

本帖最后由 iori2882 于 2011-10-11 15:26 编辑

刚运行的时候如下图 注意TP1和TP2下面的框~~~ 实际上也是有框的 就是很浅



                               然后鼠标在上下2个框各点一下 才变成



happytc 给出的解决办法是把调用皮肤那行放在GUISetState(@SW_SHOW)之后 ,这样是可以了 但是按钮的效果消失了

附上代码 麻烦大家帮忙再看看 我试过了 实在没感觉哪有问题#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#region ### START Koda GUI section ### Form=
OnAutoItExitRegister("Quit")
$Form1 = GUICreate("Form1", 344, 230, 382, 138)
Dim $dll
$bf = "vista.skf"
_SkinGUI("SkinCrafterDll.dll", $bf, $Form1)
$Tab1 = GUICtrlCreateTab(0, 0, 329, 193)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$Input1 = GUICtrlCreateInput("", 16, 64, 121, 21)
$Input2 = GUICtrlCreateInput("", 16, 120, 121, 21)
$Label1 = GUICtrlCreateLabel("TP1", 56, 40, 52, 17)
$Label2 = GUICtrlCreateLabel("TP2", 56, 96, 52, 17)
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
$TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
$TabSheet5 = GUICtrlCreateTabItem("TabSheet5")
GUICtrlCreateTabItem("")
$Date1 = GUICtrlCreateDate("2011/10/10 11:05:2", 192, 200, 138, 21)
$Progress1 = GUICtrlCreateProgress(16, 200, 134, 17)
$Button1 = GUICtrlCreateButton("确定", 152, 64, 59, 25)
$Button2 = GUICtrlCreateButton("确定", 152, 120, 59, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
Func jiaoshi()
        TrayTip("如何使用", "", 5)
EndFunc   ;==>jiaoshi
;===================================================================================================================================


Func bumen();===================================================================================================================================
        TrayTip("如何使用", "", 5)
EndFunc   ;==>bumen
;================================================================================================================================================


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $Button1
                        jiaoshi()
                Case $Button2
                        bumen()
                       
        EndSwitch
WEnd


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



Func Quit()
        GUISetState(@SW_HIDE)
        DllCall($dll, "int:cdecl", "DeInitDecoration")
        DllCall($dll, "int:cdecl", "RemoveSkin")
        DllClose($dll)
        ;DirRemove(@AppDataDir&"\skin",1)
        Exit
EndFunc   ;==>Quit
这个附件里的东西放在脚本同一目录

netegg 发表于 2011-10-10 16:35:47

光看图片好象是界面太窄了,先调大些看看

jj119120 发表于 2011-10-10 16:37:42

晕又出问题了为什么要说又呢?

iori2882 发表于 2011-10-10 17:36:16

光看图片好象是界面太窄了,先调大些看看
netegg 发表于 2011-10-10 16:35 http://www.autoitx.com/images/common/back.gif

把_SkinGUI("SkinCrafterDll.dll", $bf, $Form1)放到 GUISetState(@SW_SHOW)

后面 就正常了~我调整界面 好像不是那回事

iori2882 发表于 2011-10-10 17:37:24

晕又出问题了为什么要说又呢?
jj119120 发表于 2011-10-10 16:37 http://www.autoitx.com/images/common/back.gif

我一个小时前 以为解决了 修改主题已解决

一个小时后又发现问题了 帖子到已解决问题区拿不出来了

所以就是又了

iori2882 发表于 2011-10-11 11:02:45

额 麻烦帮看一下吧 是不是分页标签上 又建立了 输入框的原因?

顶一下~

iori2882 发表于 2011-10-11 12:40:50

没人回答肯定是我的问题有毛病 或者 下载我的附件需要钱?????麻烦帮我看下 扣钱的话 我给您评分补上
下面的界面就能正常显示,但不是我设计的窗口还需2个文件和他同一目录 在一楼附件里了#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#region ### START Koda GUI section ### Form=
OnAutoItExitRegister("Quit")
Dim $dll
$bf="vista.skf"
$Form1 = GUICreate("皮肤例子", 345, 184, 313, 309)
_SkinGUI("SkinCrafterDll.dll", $bf, $Form1)
$Group1 = GUICtrlCreateGroup("基本", 8, 8, 321, 129)
$Combo1 = GUICtrlCreateCombo("选择皮肤", 24, 40, 105, 25)
GUICtrlSetData($Combo1,$bf)
$Input1 = GUICtrlCreateInput("内容", 24, 80, 97, 21)
$Checkbox1 = GUICtrlCreateCheckbox("哈哈", 152, 32, 45, 25)
$Radio1 = GUICtrlCreateRadio("嘻嘻", 152, 72, 45, 25)
$List1 = GUICtrlCreateList("", 216, 32, 81, 84)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Progress1 = GUICtrlCreateProgress(8, 154, 241, 10)
$Button1 = GUICtrlCreateButton("退出", 272, 144, 49, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#endregion ### END Koda GUI section ###
Func jiaoshi();======================================================================================================================================
        TrayTip("如何使用", "", 5)
EndFunc   ;==>jiaoshi
;=============================================================================================================================================


Func bumen();========================================================================================================================================
        TrayTip("如何使用", "", 5)
EndFunc   ;==>bumen
;==========================================================================================================================================


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $Button1
                        jiaoshi()
                ;Case $Button2
                        ;bumen()
                       
        EndSwitch
WEnd


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



Func Quit()
        GUISetState(@SW_HIDE)
        DllCall($dll, "int:cdecl", "DeInitDecoration")
        DllCall($dll, "int:cdecl", "RemoveSkin")
        DllClose($dll)
        ;DirRemove(@AppDataDir&"\skin",1)
        Exit
EndFunc   ;==>Quit

afan 发表于 2011-10-11 13:06:44

SkinCrafterDll.dll 在Tab标签页使用皮肤有问题,之前论坛就有不少这类问题,建议使用 Skin.dll 加载.she皮肤

afan 发表于 2011-10-11 13:11:10

例子

menfan1 发表于 2011-10-12 19:25:23

多提供点SHE就好哈呵呵

zkjlcj911 发表于 2011-10-15 06:19:45

学习学习啦

zkjlcj911 发表于 2011-10-15 15:23:16

学习了好多东西呀
页: [1]
查看完整版本: GUI窗口只有在点过之后才出边框,还是没解决(已解决)