如何关闭这样的多窗口,有例子。[已解决]
本帖最后由 茫然 于 2013-4-17 14:32 编辑举例如下:
假如多次点击$Button1后生成了很多子窗口(实际程序中子窗体是由某事件创建的,事先不会知道要创建多少个),现在需要点击子窗口的关闭按钮来关闭这些窗口(关闭各自的窗口),怎么做?
(因为多次创建子窗口后,句柄肯定是变了,所以如果只有一个子窗口,点击”关闭本窗口“没有问题,多个子窗口,早先生成的子窗体就关不掉了)
请各位高手不惜赐教,谢谢啦!Opt('GUIOnEventMode', 1)
$hParentWin = GUICreate('父窗口', 350, 200)
$Button1 = GUICtrlCreateButton('弹出子窗口', 185, 157 - 21, 100, 30)
GUISetOnEvent(-3, 'gui')
GUICtrlSetOnEvent($Button1, 'gui')
GUISetState(@SW_SHOW)
Global $hChildWin
While 1
Sleep(100)
WEnd
Func gui()
Switch @GUI_CtrlId
Case -3
Exit
Case $Button1
Child()
EndSwitch
EndFunc ;==>gui
Func Child()
$hChildWin = GUICreate('子窗口', 340, 190, -1, -1, -1, -1, $hParentWin)
GUISetOnEvent(-3, '_CloseChild')
GUICtrlCreateButton('关闭本窗口', 230, 140, 80, 30)
GUICtrlSetOnEvent(-1, '_CloseChild')
GUISetState(@SW_SHOW)
EndFunc ;==>Child
Func _CloseChild()
GUIDelete($hChildWin)
EndFunc ;==>_CloseChild Func _CloseChild()
GUIDelete(@GUI_WinHandle)
EndFunc ;==>_CloseChild
RE: 如何关闭这样的多窗口,有例子。[已解决]
回复 2# user3000谢谢!原来这么简单,自己想复杂了。 本帖最后由 32714107 于 2013-4-16 21:30 编辑
运行楼主的代码为什么会出现这个错误呢
请高手教我!
>"D:\autoit3\scite\ACNWrapper\ACNWrapper.exe" /run /ErrorStdOut /in "C:\Documents and Settings\Administrator\My Documents\6.au3" /autoit3dir "D:\autoit3" /UserParams
>系统找不到指定的文件。 D:\autoit3\scite\ACNWrapper\ACNWrapper.exe" /run /ErrorStdOut /in "C:\Documents and Settings\Administrator\My Documents\6.au3" /autoit3dir "D:\autoit3" /UserParams
>系统找不到指定的文件。不是写的很清楚吗
user3000 发表于 2013-4-16 12:30 http://www.autoitx.com/images/common/back.gif
这样可以~ 谢谢zzbtlc ,我明白了,是程序安装错误。安装时最好把杀毒软件全部关闭 尤其是360~~ 嗯。的确,必须关闭360呀! 感谢,感谢,学习了,学习了
页:
[1]