dhwukils 发表于 2009-2-22 17:01:08

GUI的设计

才学AU3,菜鸟一个
想做一个开机启动后,跳出一窗口(尽量能精美点)
先出现form1_1,当form1_1启动后,设置个10秒的时间,由form1_1里的Progress1控制,
就是慢慢跑到100%
这个时候,form1_1消失,form1出现。

#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=c:\documents and settings\administrator\桌面\form1.kxf
$Form1_1 = GUICreate("Form1", 561, 142, -1, -1, $WS_POPUP)
GUISetBkColor(0x008000)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1_1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1_1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1_1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1_1Restore")
$Label1 = GUICtrlCreateLabel("緑緣網吧歡迎您", 72, 8, 427, 68)
GUICtrlSetFont(-1, 48, 800, 0, "仿宋_GB2312")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetOnEvent(-1, "Label1Click")
$Label2 = GUICtrlCreateLabel("技ポ支持:497989234(慕傛) ", 136, 88, 278, 23)
GUICtrlSetFont(-1, 14, 800, 0, "楷体_GB2312")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetOnEvent(-1, "Label2Click")
$Progress1 = GUICtrlCreateProgress(0, 120, 558, 17, BitOR($PBS_MARQUEE,$WS_BORDER,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
Sleep(100)
WEnd

Func Form1_1Close()
        $Form1 = GUICreate("Form1", 633, 446, 192, 124)
        GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
        GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
        GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
        GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
        GUISetState(@SW_SHOW)

EndFunc

Func Form1_1Restore()

EndFunc

但是我这么写,却并不能实现这个功能,有达人吗,
帮我实现这个功能好吗
顺便给我讲解下。

dhwukils 发表于 2009-2-22 17:04:57

GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1_1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1_1Maximize")
GUICtrlSetOnEvent(-1, "Label2Click")
GUICtrlSetOnEvent(-1, "Label2Click")
在执行的时候
上面四个函数估计是么定义,会显示错误,删除就行

dhwukils 发表于 2009-2-22 17:06:35

窗口的初始化函数和关闭函数是不是由自己定义的
而不是au3里面本身就包含有这个函数,
窗口关闭以及初始化或者缩小放大等用au3控制的话
是不是只是通过消息来控制以及判断?

sxd 发表于 2009-2-22 23:24:48

那个是koda在你选中了 为所有控件生成事件 后为你写好的 各个事件

当你没有写那些事件的自定义函数时 会报错

dhwukils 发表于 2009-2-23 10:43:00

闷这个我知道呢。
我的意思怎末用progressbar来控制时间
当到了100%的时候 关闭窗口1 并且窗口2

sxd 发表于 2009-2-23 23:46:40

那个术 我说怎么这么奇怪 汗
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=c:\documents and settings\administrator\桌面\form1.kxf
$Form1_1 = GUICreate("Form1", 561, 142, -1, -1, $WS_POPUP)
GUISetBkColor(0x008000)
$Label1 = GUICtrlCreateLabel("緑緣網吧歡迎您", 72, 8, 427, 68)
GUICtrlSetFont(-1, 48, 800, 0, "仿宋_GB2312")
GUICtrlSetColor(-1, 0x000080)
$Label2 = GUICtrlCreateLabel("技ポ支持:497989234(慕傛) ", 136, 88, 278, 23)
GUICtrlSetFont(-1, 14, 800, 0, "楷体_GB2312")
GUICtrlSetColor(-1, 0x000080)
$Progress1 = GUICtrlCreateProgress(0, 120, 558, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

For $I = 1 To 10
        GUICtrlSetData($Progress1, $I & "0")
        Sleep(1000)
Next

GUIDelete($Form1_1)
$Form1 = GUICreate("Form1", 633, 446, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetState(@SW_SHOW)

While 1
        Sleep(100)
WEnd

Func Form1Close()
Exit

EndFunc   ;==>Form1Close

[ 本帖最后由 sxd 于 2009-2-23 23:48 编辑 ]
页: [1]
查看完整版本: GUI的设计