如何在关闭子窗口时不关闭父窗口?
$gui1 = GUICreate()$button = GUICtrlCreateButton()
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $button
$gui2 = GUICreate(,,,$gui1)
$edit = GUICtrlCreateEdit()
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
如何在关闭$gui2时不使$gui1也被同时关掉? $gui1 = GUICreate()
$button = GUICtrlCreateButton()
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $button
$gui2 = GUICreate(,,,$gui1)
$edit = GUICtrlCreateEdit()
Case $msg = $GUI_EVENT_CLOSE
GUIDelete() ; 销毁前面的窗口
EndSelect
WEnd 可以用隐藏窗口的办法。不错的选择。 GUIDelete(字窗口) gui中好像没有检测gui是否存在的函数
只有用winexists来检测子窗口的存在
关闭父窗口时还有些删文件的操作
所以只有用选择语句来判断
IfWinExists() Then
GUIDelete($gui2)
ElseIf Not WinExists() Then
DirRemove(@AppDataDir & "\skin", 1)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $gui1, "int", 600, "long", 0x00010010)
GUISetState()
Exit
Endif
但运行起来有个问题
就是打开子窗口后,
如果点父窗口的关闭键则需点两次:
先关子窗口后再点一次才关父窗口
如何使子窗口打开后如不关闭则无法对父窗口进行操作? 在父窗口直接点关闭的时候用EXIT函数没有试过要点两次的。
如果想打开子窗口父窗口操作不了的话,可以锁定父窗口。
即:GUISetState(@SW_DISABLE, $hGUI) 精辟,这样很好 切换窗口用guigetmsg(1),简单有效,怎么有这么多的人问这个问题
页:
[1]