找回密码
 加入
搜索
查看: 2323|回复: 1

[GUI管理] 新手可以看看,第一次写的内嵌固定窗口实例,还有点问题望高手解答

[复制链接]
发表于 2008-12-5 13:44:37 | 显示全部楼层 |阅读模式
在主窗口中按按钮新建一个内嵌的子窗口,不可移动。。。可以通过函数对子窗口进行编辑

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;#NoTrayIcon ;不要任务栏图标,测试阶段要用,所以注释掉了

Opt("GUIOnEventMode", 1) ;开启oneventmode模式

$testgui=GUICreate("内嵌子窗口示例",450,500,-1,-1,$WS_OVERLAPPEDWINDOW) ;主窗口,无限制
GUISetOnEvent($GUI_EVENT_CLOSE, "guitest") ;注册关闭按钮到guitest函数
GUISetState() ;空...

$bn1=GUICtrlCreateButton("建立子窗口",20,20,80,20) ;"建立子窗口"按钮
GUICtrlSetOnEvent($bn1, "guitest") ;注册按钮响应到guitest函数

While 1
        ;;窗口停留
WEnd

Func guitest()
        Switch @GUI_CtrlId;发送相关指令条件
        Case $GUI_EVENT_CLOSE;---------------------------------------退出程序
            Switch @GUI_WINHANDLE;                                   |
                                Case $testgui ;                                      |
                                        $mg=MsgBox(36,"确认","是否退出?")         ;    |
                                        If $mg=6 Then Exit                            ;  |
                Case Else                                       ;    |
                    GUISetState(@SW_HIDE,@GUI_WINHANDLE)       ;     |
                        EndSwitch;-----------------------------------------------|                                           
                Case $bn1 ;按钮1"建立子窗口"按钮按下
                        zform() ;执行zform函数
                EndSwitch
EndFunc;===>guitest
        
Func zform()
        $form1=GuiCreate("子窗口",400,400,20,60,BitOr($WS_CLIPSIBLINGS,$WS_CHILD),$WS_EX_CLIENTEDGE,$testgui);在父窗口中建立带有凹陷边框的子窗口
        GUISetState();使其可见
        GUICtrlSetState($bn1,$GUI_DISABLE);禁用"建立子窗口"按钮
        $zformbn1=GUICtrlCreateButton("添加",10,10,60,20);在子窗口中添加按钮
        $zformbn2=GUICtrlCreateButton("退出窗口",80,10,60,20);同上
        GUICtrlSetOnEvent($zformbn1, "message");按钮注册到message函数
        GUICtrlSetOnEvent($zformbn2, "Delform");按钮注册到delform函数
        Switch @GUI_CtrlId
                Case $zformbn2
                        Delform()
                case $zformbn1
                        message()
        EndSwitch
EndFunc;===>zform

Func Delform()
        GUIDelete("子窗口") ;删除子窗口
        GUICtrlSetState($bn1,$GUI_ENABLE);恢复"建立子窗口"按钮
EndFunc;===>delform

Func message()
        MsgBox(49,"确认","你按下了添加按钮") ;按下子窗口中添加按钮时弹出的信息
EndFunc;===>message


另外还有个问题
GUICtrlSetState($bn1,$GUI_DISABLE);禁用"建立子窗口"按钮

如果把这行去掉的话,在主窗口按两次以上"建立子窗口"按钮后,子窗口内的"退出窗口"就无效了...不知道怎么回事..

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-12-5 17:26:52 | 显示全部楼层
开错版块了,应该开贴到提问版块的,麻烦管理员转贴啦
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 08:23 , Processed in 0.146244 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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