代码主要实现了在一个GUI窗口中显示多个带有超链接的文本,并允许修改这些超链接的颜色。
#SingleInstance Force ; 添加控件 Gui, Add, Button, w0 h0 ; 用于Focus link_text := "测试效果0 <a href=""https://autohotkey.com"">AutoHotkey</a> 测试效果1 <a href=""https://www.autohotkey.com/boards/"">AutoHotkey Community</a> 测试效果2" Gui, Add, Link, vMyLink xp yp cff0000, %link_text% ; 获取Link控件句柄 GuiControlGet, LinkHwnd, Hwnd, MyLink ; 设置链接颜色 ; SetSysLinkColor(LinkHwnd, 1) ; 设置第二个链接的颜色 ; 使用正则表达式计算链接数量 RegExReplace(link_text, "O)<a\s+href[^>]*>[^<]*</a>",,linkCount) ; 设置所有链接的颜色 Loop, %linkCount% SetSysLinkColor(LinkHwnd, A_Index - 1) ; 索引从0开始 ; 显示GUI Gui, Show, AutoSize return SetSysLinkColor(linkObj, index=0) { static LM_SETITEM := 0x702, LIF_ITEMINDEX := 0x1, LIF_STATE := 0x2, LIS_DEFAULTCOLORS := 0x10 ; 创建LITEM结构 VarSetCapacity(LITEM, 16, 0) mask := LIF_ITEMINDEX | LIF_STATE NumPut(mask, LITEM, 0, "UInt") ; mask if (index > 0) NumPut(index, LITEM, 4, "Int") ; iLink state := LIS_DEFAULTCOLORS NumPut(state, LITEM, 8, "UInt") ; state NumPut(state, LITEM, 12, "UInt") ; stateMask ; 发送消息 SendMessage, LM_SETITEM, 0, &LITEM,, ahk_id %linkObj% } GuiClose: ExitApp
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)