waynelue 发表于 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);禁用"建立子窗口"按钮
如果把这行去掉的话,在主窗口按两次以上"建立子窗口"按钮后,子窗口内的"退出窗口"就无效了...不知道怎么回事..

waynelue 发表于 2008-12-5 17:26:52

开错版块了,应该开贴到提问版块的,麻烦管理员转贴啦:face (16):
页: [1]
查看完整版本: 新手可以看看,第一次写的内嵌固定窗口实例,还有点问题望高手解答