找回密码
 加入
搜索
查看: 2086|回复: 4

GUIOnEventMode多窗口模式不太理解 请大家指点一下

[复制链接]
发表于 2008-8-21 14:34:34 | 显示全部楼层 |阅读模式
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

$main = GuiCreate("MyGUI", 340, 60,-1, -1,BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")

$Button_1 = GuiCtrlCreateButton("显示窗口1", 10, 10, 100, 40)
$Button_2 = GuiCtrlCreateButton("显示窗口2", 120, 10, 100, 40)
$Button_3 = GuiCtrlCreateButton("显示窗口3", 230, 10, 100, 40)

GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")

GUICtrlSetOnEvent($Button_2, "gui")
GUICtrlSetOnEvent($Button_3, "gui")
GUICtrlSetOnEvent($Button_1, "gui")

While 1
    ;;;
WEnd

Exit

Func gui()
    Switch @GUI_CtrlId
        Case $GUI_EVENT_CLOSE
            Switch @GUI_WINHANDLE
                Case $main
                    Exit
                Case Else
                    GUIDelete(@GUI_WINHANDLE)
            EndSwitch
        Case $Button_2
            if WinExists("子窗口2") = 0 Then
                GuiCreate("子窗口2", 140, 60,10,100,-1,-1,$main)
                GUISetState()
                GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
            EndIf
        Case $Button_3
            if WinExists("子窗口3") = 0 Then
                GuiCreate("子窗口3", 140, 60,160,100,-1,-1,$main)
                GUISetState()
                GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
            EndIf
        Case $Button_1
            add()
    EndSwitch
EndFunc 

Func add()
        $Form1 = GUICreate("Form1", 157, 72, 193, 115)
        $Button1 = GUICtrlCreateButton("Button1", 32, 24, 75, 25, 0)
        GUISetState()
        GUISetOnEvent($GUI_EVENT_CLOSE, "gui")

        While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case $Button1
                MsgBox(0,"","111")
        EndSwitch
        WEnd        
EndFunc   ;==>add


GUIOnEventMode多窗口模式不太理解 请大家指点一下

[ 本帖最后由 kryiran 于 2008-8-21 21:32 编辑 ]
 楼主| 发表于 2008-8-21 17:43:29 | 显示全部楼层

上面代码就是一运行就

子窗口一加了消息响应   
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
就实现不了
发表于 2008-8-21 17:59:28 | 显示全部楼层
实在理解不了你的提问。
 楼主| 发表于 2008-8-21 20:06:19 | 显示全部楼层
Func add()
这个如果加了While 1
自窗口就不能实现
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
就是不能关闭了  很郁闷
发表于 2012-1-3 20:41:48 | 显示全部楼层
在Add()里边加上这个试试
Func Add()


    Switch @GUI_CtrlId


        Case $GUI_EVENT_CLOSE


            Switch @GUI_WINHANDLE


                Case $main


                    Exit


                Case Else


                    GUIDelete(@GUI_WINHANDLE)


            EndSwitch

EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 18:40 , Processed in 0.096020 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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