找回密码
 加入
搜索
楼主: kk_lee69

[AU3基础] 如何可以按下按钮 点击 窗口的关闭按钮??[已解决]

  [复制链接]
 楼主| 发表于 2016-5-10 15:12:05 | 显示全部楼层
回复 14# chzj589


    你看看 這篇  一樣需要類似的 功能
http://www.autoitx.com/forum.php ... 8%B1%D5%B0%B4%C5%A5

還有這篇我估計 樓主也是在詢問跟我一樣的 只是沒人回
http://www.autoitx.com/forum.php ... 8%B1%D5%B0%B4%C5%A5
发表于 2016-5-10 15:16:36 | 显示全部楼层
回复 16# kk_lee69
哦,那我理解错了。这个我不会
发表于 2016-5-10 15:42:53 | 显示全部楼层
回复 16# kk_lee69
你的思路是:
1:点击关闭按钮,弹出一个窗口。但不是MsgBox(0, "关闭子窗口", "是否确定关闭子窗口??")
2:点击弹出一个窗口里的确定,关闭子窗口。
 楼主| 发表于 2016-5-10 16:03:10 | 显示全部楼层
回复 18# chzj589

這樣說 好像怪怪的  

  應該說 點擊關閉按鈕  必須要 能夠 讓程式 觸發   目前已經有的MSGBOX 那一段程式
所我在想的是  是不是 可以用 GUICtrlSendMsg 直接送處  關閉的消息
 楼主| 发表于 2016-5-10 17:35:07 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-5-10 17:37 编辑

回复 17# chzj589


    暈倒  解決了  原來只要
WinClose($SUB)

就可以了@@

本函數將發送關閉消息到目標窗口, 效果因窗口不同而不同(可能會詢問是否保存數據, 等等).
发表于 2016-5-10 20:17:48 | 显示全部楼层
回复 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
这样就通过了
发表于 2016-5-10 20:59:28 | 显示全部楼层
回复 21# chzj589

实际是删除子窗口控件

GUIDelete($SUB)
 楼主| 发表于 2016-5-11 00:11:59 | 显示全部楼层
回复 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
发表于 2016-5-11 08:23:40 | 显示全部楼层
本帖最后由 chzj589 于 2016-5-11 08:37 编辑

回复 23# kk_lee69
你要的是:

GUIDelete
删除窗口及其所有控件.
GUIDelete([窗口句柄])

你看一下这样有什么不一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-5-11 08:52:25 | 显示全部楼层
回复 23# kk_lee69

你说
WinClose($SUB);关闭指定窗口.

GUIDelete($SUB);删除窗口及其所有控件.
有什么不一样?
这句WinClose($SUB);关闭指定窗口,如果没有GUIDelete(@GUI_WinHandle),
就不能关闭子窗口。
 楼主| 发表于 2016-5-11 09:10:05 | 显示全部楼层
回复 25# chzj589

Case $SUB
         GUIDelete(@GUI_WinHandle)
會直接關閉子窗口

Case $SUB
         WinClose(@GUI_WinHandle)

這個不會直接關閉子窗口

而我要的就是 不會直接 關閉子窗口   因為 子窗口 要不要關閉 應該是由  另外一段程式 控制
发表于 2016-5-11 09:14:17 | 显示全部楼层
回复 26# kk_lee69
谢谢解答!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:29 , Processed in 0.070085 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表