为 GUI 控件绑定函数事件处理程序的三种不同方法,并探索如何在绑定函数时传递参数。
; 方法三是空的示例
; https://www.autohotkey.com/boards/viewtopic.php?f=76&t=105266
Gui, Add, Button, hWndbut, minimize
onclick := Func("f").Bind("abc")
GuiControl, +g, %but%, %onclick%
Gui, Show, w300 h100
Return
f(x){
msgbox % x
}
/* 方法二
Gui, Add, Button, hWndbut, minimize
obj := func("f") ; the object
onclick := objBindMethod(obj
, "call" ; 方法名称
, "abc") ; 绑定到第一个参数的值
GuiControl, +g, %but%, %onclick%
Gui, Show, w300 h100
Return
f(x){
msgbox % x
}
*/
/* 方法三
; 如何省略 Value := Params[3] 的赋值
; 回答:V1的GuiControl没有实现返回对象表达式的引用,只能赋值。【帮助文档有说明】
Gui, Add, Button, W50 H50 Hwnd按钮ID, 按钮
绑定函数("传参测试", 按钮ID, Func("绑定函数").Bind("MsgBox测试")) ; 这次调用了函数,所以激活了Params[1],也就激活了ToolTip
Gui Show, W300 H200
return
F1::绑定函数("传参测试")
绑定函数(Params*) {
if (Params[1] = "传参测试") {
Value := Params[3] ; 如何省略该赋值【GuiControl不支持数组引用,绑定函数改成固定参数即可】
GuiControl, +g, % Params[2], %Value% ; +g是添加g标签的意思
ToolTip % "函数调用测试"
} else if (Params[1] = "MsgBox测试") {
MsgBox % "如何省略 Value := Params[3] 的赋值:" Params[1]
}
}
GuiClose:
ExitApp
*/
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)