; 方法三是空的示例
; 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
*/

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。