你看看 這篇一樣需要類似的 功能
http://www.autoitx.com/forum.php?mod=viewthread&tid=39037&highlight=%B9%D8%B1%D5%B0%B4%C5%A5
還有這篇我估計 樓主也是在詢問跟我一樣的 只是沒人回
http://www.autoitx.com/forum.php?mod=viewthread&tid=36860&highlight=%B9%D8%B1%D5%B0%B4%C5%A5 回复 16# kk_lee69
哦,那我理解错了。这个我不会 回复 16# kk_lee69
你的思路是:
1:点击关闭按钮,弹出一个窗口。但不是MsgBox(0, "关闭子窗口", "是否确定关闭子窗口??")
2:点击弹出一个窗口里的确定,关闭子窗口。 回复 18# chzj589
這樣說 好像怪怪的
應該說 點擊關閉按鈕必須要 能夠 讓程式 觸發 目前已經有的MSGBOX 那一段程式
所我在想的是是不是 可以用 GUICtrlSendMsg 直接送處關閉的消息 本帖最后由 kk_lee69 于 2016-5-10 17:37 编辑
回复 17# chzj589
暈倒解決了原來只要
WinClose($SUB)
就可以了@@
本函數將發送關閉消息到目標窗口, 效果因窗口不同而不同(可能會詢問是否保存數據, 等等). 回复 20# kk_lee69
是啊,我刚吃完饭,又仔细的看了一遍,发现:
Func GUI_COMMAND()
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Switch @GUI_WinHandle
Case $Main
Exit
Case $SUB
MsgBox(0, "能夠看到我嗎??", "是否確定要關閉??")
GUIDelete(@GUI_WinHandle)
EndSwitch
Case $Button1
MsgBox(0, "点击<确定>", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle & " 控件句柄=" & @GUI_CtrlHandle)
GUIDelete($SUB)
EndSwitch
EndFunc ;==>GUI_COMMAND
这样就通过了 回复 21# chzj589
实际是删除子窗口控件
GUIDelete($SUB) 回复 22# chzj589
你看我的範例 看 BUTTON1 的寫法 然後你按下去 看看有甚麼不一樣
這個才是我想要的 效果.....
重點在於WinClose 函數的這句話 本函數將發送關閉消息到目標窗口, 效果因窗口不同而不同(可能會詢問是否保存數據, 等等).
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
$Main = GuiCreate("TEST",500,500,-1,-1)
$Button1 = GuiCtrlCreateButton('關閉窗口', 10, 10, 100, 25)
GUISetOnEvent($GUI_EVENT_CLOSE,"GUI_COMMAND")
GUICtrlSetOnEvent($Button1, "GUI_COMMAND")
GUISetState()
$SUB=GUICreate("子窗", 300,200,500, 400,$WS_SYSMENU, -1 , $Main);+$WS_SIZEBOX加上這個風格會變成立體框 $WS_SYSMENU$WS_POPUP
GUISetOnEvent($GUI_EVENT_CLOSE,"GUI_COMMAND")
GUISetState()
While 1
Sleep(20)
WEnd
Func GUI_COMMAND()
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Switch @GUI_WinHandle
Case $Main
Exit
Case $SUB
MsgBox(0, "能夠看到我嗎??", "是否確定要關閉??")
GUIDelete(@GUI_WinHandle)
EndSwitch
Case $Button1
WinClose($SUB)
EndSwitch
EndFunc ;==>GUI_COMMAND
本帖最后由 chzj589 于 2016-5-11 08:37 编辑
回复 23# kk_lee69
你要的是:
GUIDelete
删除窗口及其所有控件.
GUIDelete([窗口句柄])
你看一下这样有什么不一样
回复 23# kk_lee69
你说
WinClose($SUB);关闭指定窗口.
与
GUIDelete($SUB);删除窗口及其所有控件.
有什么不一样?
这句WinClose($SUB);关闭指定窗口,如果没有GUIDelete(@GUI_WinHandle),
就不能关闭子窗口。 回复 25# chzj589
Case $SUB
GUIDelete(@GUI_WinHandle)
會直接關閉子窗口
Case $SUB
WinClose(@GUI_WinHandle)
這個不會直接關閉子窗口
而我要的就是 不會直接 關閉子窗口 因為 子窗口 要不要關閉 應該是由另外一段程式 控制 回复 26# kk_lee69
谢谢解答!{:face (361):}
页:
1
[2]