You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AHK GUI中如何监听Progress控件的点击事件?

解决AutoHotkey Progress控件无法绑定点击事件的问题

Progress控件本身不支持通过g标签绑定点击回调子程序,这就是你遇到报错的原因。下面提供两种可行的解决方案:

方案一:用透明Button控件覆盖Progress

在每个Progress控件上方添加一个透明无样式的Button,让Button接收点击事件,同时不遮挡Progress的颜色显示。

示例代码:

Gui Main:New,+AlwaysOnTop +ToolWindow -Caption +HwndMainHwnd, Swatches
Gui Main:Font,s14,Consolas

; 添加颜色样本Progress
Gui Main:Add,Progress, ConSwatch1 cblue x04 y04 w35 h35, 100
Gui Main:Add,Progress, ConSwatch2 cred x04 y+4 w35 h35, 100
Gui Main:Add,Progress, ConSwatch3 cgreen x04 y+4 w35 h35, 100

; 添加透明Button覆盖每个Progress,绑定点击子程序
Gui Main:Add,Button, x04 y04 w35 h35 +E0x80000 gDoBlue  ; +E0x80000 让按钮透明无外观
Gui Main:Add,Button, x04 y+4 w35 h35 +E0x80000 gDoRed
Gui Main:Add,Button, x04 y+4 w35 h35 +E0x80000 gDoGreen

Gui Main:Show, x300 y300 w84 h356 NA 
return

; 点击子程序
DoBlue:
MsgBox, 应用蓝色...
return

DoRed:
MsgBox, 应用红色...
return

DoGreen:
MsgBox, 应用绿色...
return

方案二:监听GUI整体点击事件,通过坐标判断点击目标

给整个GUI绑定点击回调,通过点击的坐标计算对应哪个Progress控件,适合颜色样本较多的场景。

示例代码:

Gui Main:New,+AlwaysOnTop +ToolWindow -Caption +HwndMainHwnd gOnGuiClick, Swatches
Gui Main:Font,s14,Consolas

; 记录每个样本的位置和对应颜色
Swatches := [
    {x:4, y:4, w:35, h:35, color:"blue", name:"蓝色"},
    {x:4, y:43, w:35, h:35, color:"red", name:"红色"},
    {x:4, y:82, w:35, h:35, color:"green", name:"绿色"}
]

; 添加所有Progress控件
for _, swatch in Swatches {
    Gui Main:Add,Progress, c%swatch.color% x%swatch.x% y%swatch.y% w%swatch.w% h%swatch.h%, 100
}

Gui Main:Show, x300 y300 w84 h356 NA 
return

; GUI点击事件处理
OnGuiClick:
    MouseGetPos, mouseX, mouseY,,, 2  ; 获取相对于GUI客户区的坐标
    for _, swatch in Swatches {
        ; 判断点击坐标是否在当前样本范围内
        if (mouseX >= swatch.x && mouseX <= swatch.x+swatch.w 
            && mouseY >= swatch.y && mouseY <= swatch.y+swatch.h) {
            MsgBox, 应用%swatch.name%...
            break
        }
    }
return

两种方案都能实现点击颜色样本触发对应操作的需求,方案一简单直观,方案二更适合动态生成大量样本的场景。

内容的提问来源于stack exchange,提问作者GaryAtlan82

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:58:31