一个简单的Gui创建多Button的示例

我用了中文变量名,顺便当个简单的注释用,复制代码使用的话,文件选utf8-bom编码

分类 := ["调整", "输入", "播放", "软件"] ; 要创建的Tab页名称列表
列数 := 7
行数 := 2
按钮间距 := 2
默认Tab := "调整"
按钮高 := 30
按钮宽 := 50
按钮文本大小 := 8

; -----------------------------------------------------
; 创建tab页名称命名的简单数组,数组内为当前tab页的按钮名
; 把按钮对应的动作写在与按钮同名的标签/函数下

调整 := ["示例一", "示例二"]
输入 := ["示例三"]

; ---------------------------------------------------------

TabName := ""
For k,v in 分类
{
    If (v = 默认Tab)
        TabName .= v . "||"
    Else
        TabName .= v . "|"
}


Gui, +AlwaysOnTop +E0x08000000
Gui, Font, s10, 微软雅黑
Gui, Margin, 10 , 10
Gui, Add, Tab3, % "w" (按钮宽+按钮间距)*列数+18, % TabName
log.info((按钮宽+按钮间距)*列数+按钮间距)
Gui, Font, s%按钮文本大小%, 微软雅黑
For k,v in 分类
{
    Gui, tab, % v
    换行计数 := 0
    新行 := 1
    按钮总数 := 行数 * 列数
    Loop % 按钮总数
    {
        换行计数 += 1
        _Lift := "x+" 按钮间距
        _Top := ""
        If (A_Index = 1)
            _Lift := "x20", _Top := "y45"
        If (换行计数 = 列数 + 1){
            _Lift := "x20", _Top := "y" 45 + (按钮高+按钮间距) * 新行 
            换行计数 := 1
            新行 += 1
        }
        If (%v%[A_Index]){
            中转标签 := Func(%v%[A_Index])
            gid := %v%[A_Index]
            Gui, Add, Button, %_Lift% %_Top% h%按钮高% w%按钮宽% v%gid% , % %v%[A_Index]
            GuiControl +g, %gid%, %中转标签%
        }
        Else
            Gui, Add, Button, %_Lift% %_Top% h%按钮高% w%按钮宽%
    }
}
Gui, Show, NA, 简陋的按钮
Return

; 动作示例

示例一(){
MsgBox % "创建一个新行"
}

示例二(){
Send, {Text}这个按钮是用来输入这段话
}

示例三(){
MsgBox % "这是一段测试用的文本"
}


F2::Reload

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他案例

【AHK学习记录】选中文件复制/移动,放入“备份”文件夹

2021-11-26 13:25:38

其他

简易写相对坐标Gui+批量多按钮生成

2021-11-28 19:26:45

5 条回复 A文章作者 M管理员
  1. Retention01

    非常实用的脚本,感谢!

个人中心
购物车
优惠劵
有新私信 私信列表
搜索