OwnDialogs: 命令 Gui +OwnDialogs 可以指定窗体上的每个线程(例如 ButtonOK 子过程)为子窗体,可以使窗体上激活的如 MsgBox, InputBox, FileSelectFile, 和 FileSelectFolder 对话框为当前窗体的子窗体。这些对话框都为模式对话框,也就是说用户必须先关闭这些对话框才能和他们的父窗体进行交换。相比之下,ToolTip, Progress, 和 SplashImage 窗体即使设置了为子窗体,他们仍为非模式,他们仅仅只是显示在其父窗体之上。不管是模式或是非模式,当起对话框销毁 destroyed 时,其子窗体会自动销毁。
该命令不需要写在代码行的末尾,因为他不会影响到其他的线程 。但如果一个线程需要显示两个对话框,或是想要取消 owned 设置,可以通过命令 Gui -OwnDialogs 来关闭子窗体设置。
如果在 Gui 后面没有指定一个数字,如使用命令 Gui +OwnDialogs 而不是 Gui 2:+OwnDialogs ,则对默认窗体进行设置!
Owner: 使用 +owner 选项可以设置该窗体为其他窗体的子窗体(一旦窗体创建,选项 -owner 则没有效果)。一个子窗体不会在任务栏中显示按钮,并且子窗体永远显示在其父窗体之上。当父窗体销毁时,子窗体自动销毁。使用选项 +Owner 时,确保其父窗体已经创建(也就是说要在命令 Gui Add 之后使用该选项)。以下有两种使用 +owner 选项的示例:
gui, 2:+owner1 ; 设置窗体#2 为窗体#1 的子窗体。gui, 2:+owner ; 设置窗体#2 为脚本主窗体 script's main window 的子窗体,并且不显示任务栏按钮。如果在子窗体显示时需要防止用户和父窗体进行交互,可以通过 Gui +Disabled 命令来使父窗体无效。当子窗体取消或销毁前,调用 Gui -Disabled 命令,则当子窗体销毁后,父窗体自动恢复为有效。
标签:销毁,窗口,对话框,ahk,Gui,模式,窗体,OwnDialogs,owner From: https://blog.51cto.com/u_15408625/6221829