{AHK}为脚本启动后产生的GUI按钮定义控件(/分配任务)



比方说,在运行脚本的过程中,您可以通过循环创建带有多个按钮的gui。

    Loop, 5
{
Gui, Add, Button,, Number %A_Index%)
}
Gui, Show

按下其中一个按钮后,你如何分配动作?

在脚本启动后,你似乎无法做到这一点,并且像这样的技巧

ButtonNumber%A_Index%:  ;even if i was doing it inside loop.
do something here bla bla
return

不要工作。

更糟糕的是,我想从文件的内容中创建这些按钮(这里是为了测试),比如说,每行文本都用来命名一个按钮。您可以在AHK帮助文件中找到类似的小型项目。但是,让我们继续使用这个简单的模拟。可能是:存储和响应用户输入,第三个选项变量或g-label是anwser。然而,它要求静态/全局var,但我在声明这些时遇到了麻烦。还有我不熟悉的g标签。

我想到的另一个选择是——创建预定义的按钮(很多),将它们重命名为我的值(从文件中),然后放弃rest。希望我能够使用预定义的控件。

p.SAHK帮助文件真的一团糟,作为一个初学者,我发现它必须找出完整而有意义的信息,相反,你必须到处搜索并咬一口。

一种方法是对所有按钮使用解析循环和一个g-label,然后使用a_guiControl获取调用子程序的按钮的变量名

示例:

; fileread, file_content, Path-to-file
file_content =
(
line with text one
line with text more
line with text other
line with text something
line with text two
)
Loop, parse, File_content, `n, `r
{
    Gui, Add, Button, vMyButton%A_index% gButtons, %A_LoopField%
}
Gui, Show
return
Buttons:
msgbox % A_GuiControl
return
GuiClose:
ExitApp

希望它能帮助

我找到了一个解决问题的可能方法。基本上,它涉及blackholyman(lel)建议的g-label功能。对我的所有按钮使用相同的g-label,并在按钮控件内进行A_GuiControl比较。由于我已经将按钮名称存储在一个文件中,在一行中与其他数据存储在一起,这与该按钮相关,我可以通过解析将每一行与按钮名称(a_GuiControl)进行比较,这使我能够在指定的g-label中检索相关数据。也许有人会发现它有用。我稍后会添加代码。

最新更新