本帖最后由 茫然 于 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
|