找回密码
 加入
搜索
查看: 1608|回复: 71

[皮肤] AUI界面库0.6.0 Beta

  [复制链接]
发表于 2026-6-12 01:30:28 | 显示全部楼层 |阅读模式
本帖最后由 繁星 于 2026-7-17 09:21 编辑

AUI — 为 AutoIt 打造的现代化 Windows 界面库
用 Direct2D 全自绘的界面库,让 AutoIt 也能写出现代化、高 DPI 清晰、深浅主题自由切换的桌面程序——不用拼传统 Win32 子控件,不用手算像素坐标,不用和编码搏斗。配套一个可视化设计器,拖拽就能生成 AutoIt 代码。
  • 库版本:0.6.0 Beta · 设计器版本:0.5.0 Beta
  • 平台:Windows 10 / 11(32 位)

一、AUI 是什么
AUI 由三部分组成,可以单独用,也可以配合使用:
  • AUI 核心库(C++ / AUI.dll)基于 Direct2D全程自绘所有控件,彻底抛弃传统 Win32 子控件方案。默认就是无边框 + 圆角 + 自绘标题栏的现代化窗口,原生支持高 DPI 与深浅主题。
  • AutoIt UDF 封装(AUI.au3)把核心库的 C 接口封装成 300 个 _UI_* 函数,每个都带标准 #FUNCTION# 文档头。字符串直接用 AutoIt 原生宽字符,坐标用逻辑像素,回调用函数名注册——符合AutoIt的习惯设计。
  • AUIDesigner 可视化设计器一个三栏式的拖拽设计工具(控件面板 / 画布 / 属性面板),所见即所得地摆放控件、调整布局与属性,再一键导出成可直接运行的 AutoIt 代码。

二、核心亮点
单 HWND,全程 Direct2D 渲染所有控件画在同一个窗口上,没有子窗口,不会闪烁;不依赖 GDI,天然支持抗锯齿、彩色 Emoji、文字阴影;缩放窗口时控件平滑变化,性能远胜 AutoIt 内置 GUI。
默认就是现代化窗口_UI_WindowCreate 出来的窗口默认为:无系统边框(WS_POPUP)+ 自绘标题栏(图标/标题/主题切换/最小化/最大化/关闭)+ Win11 圆角,可拖动移动、双击标题栏最大化、可调整大小。还可按需开启Mica/Acrylic半透明置顶强制亮/暗等。
真正透明的高 DPI所有传入的坐标和尺寸都是逻辑像素(96 DPI 等效),库内部按显示器缩放自动换算。同一份代码在 100% / 125% / 150% / 200% 缩放下视觉一致;窗口在不同 DPI 的显示器间拖动时自动重新布局。
深浅双主题,一键切换语义化颜色 token,标题栏自带主题切换按钮,亮 / 暗 / 跟随系统随时切换,所有控件同步更新。
Flex 弹性布局内置 Row(横向)、Column(纵向)、Grid(网格)三种弹性容器,配合 flex_grow 等分、gap 间距、align 对齐,像写前端一样组织界面;纵向根容器内容超长时自动滚动。
AutoIt 友好的接口原生 UTF-16 字符串直接传、无需字节集转换;函数名简短(_UI_Button、_UI_Input…)符合 UDF 习惯;高频参数前置、低频走默认值;回调内部用 DllCallbackRegister 适配,你只管传函数名。

三、控件总览
300 个 API 函数,覆盖 60+ 个真实控件,按用途分为八大类:

基础Text 文本、Heading 标题、Link 链接、Icon 图标、Image 图片、Avatar 头像、Tag 标签、Badge 徽标、网页(Webview2)、Divider分割线
按钮Button(7 种变体)、IconButton 图标按钮、LinkButton 链接按钮、ToggleButton 开关按钮
输入Input 单行、PasswordInput 密码、TextArea 多行、NumberInput 数字、Search 搜索、AutoComplete 自动补全
选择Checkbox、Radio、Switch、Slider、Rate 评分、Combo 下拉、Segmented 分段、Stepper 分步、ColorPicker、DatePicker、TimePicker
容器Column、Row、Panel、Grid、Card、ScrollView、Tabs、Accordion、Sidebar
导航Steps 步骤条、Pagination 分页、Breadcrumb 面包屑、Menu 下拉菜单
数据Table 表格、Chart 图表、Progress 进度、List 列表、Tree 树形、Statistic 统计、Descriptions 描述列表、Timeline 时间线
反馈Dialog 对话框、Drawer 抽屉、Popover 气泡、Tooltip 提示、Message 轻提示、Notification 通知、Loading、Spinner

此外还有完整的操作 API:取值 / 赋值、事件绑定(OnClick / OnValue / OnChange)、主题切换、窗口控制、表格行 / 树节点操作,以及WebView(内嵌 Edge 网页,具体使用参考帖子Autoit浏览器元素定位器)

四、可视化设计器
不想手写布局?打开 AUIDesigner
  • 三栏工作区:左侧按分类罗列全部控件,中间是所见即所得画布,右侧是分组属性面板。
  • 拖拽即所得:拖控件到画布、框选 / 多选、对齐与分布、分组 / 解组、智能吸附与参考线。
  • 实时编辑:双击改文字、属性面板改样式、撤销 / 重做、匹配尺寸。
  • 预览窗体:随时弹出真实窗口预览,改动即时同步。
  • 一键导出:生成结构整洁、可直接运行的 AutoIt 代码。
设计器本身就是用 AUI 写的,也是这个库的最佳示范。

五、快速上手
把AUI.dll 与 AUI.au3 放在脚本能找到的位置(这是标准的dll,如果你不想携带dll,你也可以从内存加载自行处理),然后:
#AutoIt3Wrapper_UseX64=n
#include "AUI.au3"

; 1) 创建现代化窗口(无边框 + 圆角 + 自绘标题栏)
Global $hWin = _UI_WindowCreate("我的第一个 AUI 应用", 800, 500)

; 2) 用纵向列组织内容:parent = 0 表示挂在窗口根,它会自动填满标题栏下方区域并支持滚动
Global $idCol = _UI_Column($hWin, 0)
_UI_SetPadding($hWin, $idCol, 24)
_UI_SetGap($hWin, $idCol, 16)

; 3) 添加控件(坐标尺寸为逻辑像素;宽传 0 自动撑满列宽)
_UI_Heading($hWin, $idCol, "欢迎使用 AUI", 1, 0, 0, 0, 44)
_UI_Text($hWin, $idCol, "一个为 AutoIt 打造的现代化 Windows 界面库。", 0, 0, 0, 24)

Global $idInput = _UI_Input($hWin, $idCol, "请输入你的名字…", "", 0, 0, 0, 36)
Global $idBtn   = _UI_Button($hWin, $idCol, "打招呼", $AUI_VAR_PRIMARY, 0, 0, 140, 38)

; 4) 绑定事件(OnClick 的处理函数签名是 Func F($id))
_UI_OnClick($hWin, $idBtn, "OnGreet")

; 5) 显示并进入消息循环
_UI_WindowShow($hWin)
_UI_Run()

Func OnGreet($id)
        Local $sName = _UI_GetText($hWin, $idInput)
        If $sName = "" Then $sName = "朋友"
        _UI_Dialog($hWin, "你好", "Hello, " & $sName & "!", "确定")
EndFunc
几条通用约定
  • 窗口:_UI_WindowCreate(标题, 宽, 高) 返回窗口句柄,后续 API 第一个参数都传它。
  • 布局:纵向列里控件宽传 0 自动撑满列宽、高度要给;横向 Row 里则相反(高可为 0,宽用明确值或 _UI_SetFlexGrow 平分)。内容多时可放进一个 Row、再放两个 Column 做成双列并排。
  • 坐标:一律逻辑像素,库内部按 DPI 自动缩放。
  • 回调签名:OnClick → Func F($id)、OnValue → Func F($id, $iValue)(数值 / 选项索引)、OnChange → Func F($id, $sText)(输入框文本)。
  • 字符串:AutoIt 原生宽字符,中文 / Emoji 直接传;图标用 ChrW($AUI_GLYPH_*),带文字的菜单 / 侧栏项用 _UI_Glyph(码, 文字)。

所有控件的用法参见目录controls
布局用法参见目录layout
两种循环模式参见目录loop
仿制软件参见目录demos

端午节没事就仿制了点常见软件界面目前做了2个QQ和网易云音乐,后面再多做点

测试版本如果你有好的提议和BUG可以跟帖反馈



# 更新日志

## AUI 界面库 0.6.0 Beta(2026年7月16日)(Beta版)

界面库:

* 新增:长任务不冻结界面三件套 —— `_UI_OnIdle`(把长任务切成小片交给消息循环,界面空闲时才做一片,CPU 不空转)、`_UI_SetBusy`(内容区盖遮罩挡输入、防回调重入,标题栏 ✕ 仍可点)、`_UI_IsAlive`(长任务中途被关窗时让脚本安全退出)。`_UI_Run` 改写为经典空闲循环:没活干就回到等待、CPU 归零。
* 新增:性能量尺 —— `_UI_ShowPerfHud`(窗口右上角实时显示每帧建绘 ms 与 fps)、`_UI_GetPaintMs`。
* 修复:Direct2D 1.0升级到Direct2D 1.1后窗口创建 / 放大时闪一下黑框、以及高 DPI(如 200%)下显示瞬间整界面向右下拉伸一下 —— 改走 DirectComposition 呈现、创建阶段就把几何定死,两个问题都消除;首帧改为「渲染好再揭开」,开窗无闪烁。
* 修复:按钮偶发漏点 —— 同一位置快速连点时,第二下会被系统并成「双击」而丢掉(数字框 +/-、连点按钮尤其明显)。改为统一的「先按下、再补双击」派发:任何可点击控件连点都不再漏,而双击选词 / 表格·树行双击 / 分隔条双击复位等仍照常。
* 修复:分隔线 `_UI_Divider` 随手创建时不可见 —— 现在默认给 1px,`_UI_Divider($h, $parent)` 直接就能看到一条细线(原来需手动设尺寸,否则隐形)。
* 修复:不确定态进度条走走停停 —— 改用专门的动画机制,现在匀速不间断,元素隐藏后自动停表。
* 修复:`_UI_PumpOnce` 三个缺陷(嵌套调用时删掉已关窗口致野指针、回调重入自身、吞掉退出消息致外层不退出)全部修复。
* 修复:`_UI_SetText` 改文本后不重排导致按旧尺寸绘制、文字被裁 —— 现自动重排。
* 修复:`_UI_PostTask` 名不副实(原是在调用线程同步执行)—— 改为真正投递到 UI 线程由消息循环执行。
* 修复:几处「回调里可能重设自己」的位置改为先快照再调用,避免执行途中被改写。
* 移除:`_UI_Message`(陈旧代码段,toast 请用 `_UI_Notify`、模态框请用 `_UI_MessageBox`)、`_UI_WindowSetTheme`(与 `_UI_ThemeSetMode` 完全重复)、以及若干死代码。C 导出接口 279 → 277。
* 性能:画刷 / 字体格式跨帧复用(原逐帧重建,一帧上千次 COM 创建压成个位数);首次布局的文字测量每个控件由 2 个 DirectWrite 布局降为 1 个;控件构造由 O(N²) 降为 O(N)(不写 `_UI_BeginUpdate` 也是线性)。
* 已知风险:AutoIt 的致命运行时错误若发生在 AUI 回调内部,进程会直接崩溃(`0xC0000005`)而不是弹错误框 —— 回调是 DLL 从原生栈调用脚本的,解释器无法安全中止。最易踩的坑是把 `Global` 写在 `_UI_Run()` 之后(那行永不执行,回调一读就崩)

## AUI 设计器 0.5.0 Beta(2026年7月16日)(Beta版)

设计器:

* 修复:语言按钮标签反了 —— 原来显示「当前」语言(英文界面显示 English),现在显示「点击将切到的下一个语言」(英文界面显示 Chinese)。
* 修复:切换语言会弄丢新建的子窗口 —— 现在保留所有已建窗口,不再回退到示例。
* 修复:子窗口标签太多时不换行、挤到右侧面板下面 —— 现按行自动换行,窗口缩放(最大化 / 还原)时也会重新排布。
* 修复:子窗口标签的标题不跟随语言切换(创建时写死,切英文后仍是中文)—— 现在未改过名的子窗口标题随语言走。
* 修复:英文界面残留的未翻译文案全部补齐(内嵌英文表与 `lang/en.lang` 同步)。
* 修复:悬停提示 / 右键菜单在实时预览窗口里不显示 —— 已补上(请在预览窗体里悬停查看;设计画布内因命中的是画布本体故不触发)。
* 新增:画布可在工作区内自由拖动 —— 拖模拟标题栏即可把画布移到任意位置,位置跨重建保留;纯点击(未拖动)仍选中窗口根。
* 性能:属性面板打字预览防抖 —— 文本类属性逐键输入不再每键重建预览,打字停顿约 60ms 后统一重建一次;勾选 / 下拉 / 取色等仍即时。

## AUI 界面库 0.5.0 Beta(2026年7月5日)(Beta版)

界面库:

* 新增:`_UI_WindowShowModal(hWnd, hOwner)` —— 软模态显示窗口:禁用 owner 父窗口、本窗口关闭时自动恢复(同一消息循环、不阻塞、不嵌套)。用于让子窗口 / 对话框在打开时锁住父窗口。
* 新增:窗口标志 `$AUI_WIN_NO_THEME_BTN`(0x0800)—— 隐藏标题栏的明暗主题切换按钮(配合 `$AUI_WIN_NO_MINMAX` 可做对话框式窗口)。
* 新增:`_UI_TableSetColumnWeights` 此前只支持弹性权重,现在权重项可写 `60px` 表示固定逻辑像素宽:固定列先占掉像素,剩余空间再按普通数字权重分给弹性列,可任意混用。
* 修复:面包屑每一项都被误加省略号截断(中文尤其明显,如「首页」→「首…」)。
* 修复:为此前缺少悬停反馈的交互控件统一补上悬停高亮,保持全套控件手感一致。
* 修复:通知(toast)显示期间本身静止不动,但 on_timer 此前每帧都整窗重绘(一条 3 秒通知 ≈ 90 次无谓整窗重绘),现重构 on_timer 为「只重绘本帧真正发生变化的区域,无变化则不重绘。
* 修复:WM_PAINT 此前无视系统更新区、每次都整窗重绘。现在渲染目标启用 `RETAIN_CONTENTS` 保留上帧内容。
* 修复:`_UI_Spinner` / `_UI_Loading` 创建转圈控件后,用一个只增不*的计数维持 30fps 动画定时器——页面只要出现过任何 spinner,定时器就永不停止、整窗持续重绘。
* 修复:Tabs / 横向 RadioGroup / Breadcrumb 此前每帧逐标签 `measure_text_width` 来算每段几何,现在仅在这些变化时重测段宽,无需缓存。
* 修复:Popover 弹层内容此前每帧逐字符测量折行;改为按(内容 / 卡片宽 / 字号 / DPI)缓存折行结果,未变即复用,并返回引用免去每帧整表拷贝。
* 修复:文本框(Input / NumberInput / TextArea)的「逐光标位 x 坐标表」此前每帧无条件重建 —— 长 n 字文本每帧要做 n 次 `CreateTextLayout` 来量每个前缀宽度,而光标闪烁 / 悬停等触发整窗重绘时文本根本没变,纯属浪费。
* 修复:在「组词 / 候选窗已定位到光标」的基础上做两处加固 —— (1) 文本框失焦复位:焦点离开文本框时把 `ime_caret_x` 置 -1,(2) 密码框禁用输入法:密码框聚焦时 `ImmAssociateContext(hwnd, NULL)` 卸下 IME 上下文避免组词串与候选窗泄露正在输入的密码内容。
* 新增 `Element::suppresses_ime()` 虚函数(`Input` 在密码模式下返回 true)。
* 修复:Accordion `set_expanded` 重排后未请求重绘 —— 键盘 Enter/Space 展开 / 折叠(以及程序直接调用本方法)会等到下次重绘才显示(鼠标点击因松开路径自带重绘而正常)。现已在 `set_expanded` 内重排后补一次 `invalidate_rect`,覆盖所有调用方。
* 新增:支持 Windows「高对比度」模式 —— 自绘的 D2D 应用不会被系统自动改色,故检测到开启时(`SystemParametersInfo(SPI_GETHIGHCONTRAST)` + `HCF_HIGHCONTRASTON`)整套主题改用系统色(`GetSysColor`:窗口 / 文本 / 高亮 / 灰显 / 边框),半透明叠加(hover/pressed/selected/zebra)改为纯色或关闭以保住对比度;在 `WM_SETTINGCHANGE`(SPI_SETHIGHCONTRAST) 与 `WM_THEMECHANGED` 上实时切换,关闭高对比度后按原模式(明 / 暗 / Auto)恢复。高对比度优先于明 / 暗选择。语义色(success/danger 等)暂保留默认值。
* 修复:补齐四个可点击但此前无法 Tab 到、也无键盘操作的交互控件 —— **Pagination**(←↑/PageUp 上一页、→↓/PageDown 下一页、Home/End 首尾页)、**Sidebar**(↑↓/←→ 换项环绕、Home/End 首尾)、**Accordion**(Tab 聚焦表头、Enter/Space 展开折叠,焦点环只圈表头不圈内容)、**Menu**(Tab 聚焦、Enter/Space/↓ 展开、↑↓ 移动、Enter/Space 选定、Esc 关,与 ComboBox 同款)。键盘焦点环沿用 `paint_tree` 的统一 focus-visible 机制(仅键盘 Tab 聚焦时显示)。
* 修复:Mica/Acrylic 窗口在 Win11 22H2+ 正确显示半透明材质 —— 无边框窗口补上 `DwmExtendFrameIntoClientArea`(“整窗玻璃”),此前透明客户区无背景可合成而显示为黑。又因 Mica 材质明暗由系统「默认应用模式」统一决定、无法被单个窗口覆盖(强切深色只会让深色内容叠在浅色材质上、白字看不见),这类窗口隐藏主题切换按钮、始终跟随系统应用模式(与 Win11 自带应用一致);逐窗口深浅切换仅不透明窗口支持。
* 修复:每帧画刷缓存由“单画刷反复改色”改为“每颜色一支独立画刷”,根除同一帧取两个不同色画刷再一起使用时可能串色的隐患(调用方 AddRef/Release 契约不变)。
* 修复:网络图片单图大小上限 32MB —— 防超大图 / 解码炸弹耗尽内存(已有超时,补上单图字节上限)。

## AUI 设计器 0.4.0 Beta(2026年7月5日)(Beta版)

设计器:

* 新增:全套界面支持中英文 —— 内置完整英文、按系统 UI 语言自动切换;可在 `lang/` 放 `<code>.lang` 语言文件动态加载,工具栏语言按钮实时切换。
* 修复:设计器自身构建界面改用 `_UI_BeginUpdate` / `_UI_EndUpdate` 批量化创建组件,不再逐控件全树重排,启动与交互明显加快。
* 新增:多设计面 / 子窗口:一个设计文件可含多个窗口,画布顶部标签切换,子窗口可勾「模态」「无主题切换钮」「无最小 / 最大化钮」,默认居中 + 跟随主题。存档(.auid)与代码生成均支持多窗口 —— 每个子窗口生成一个 `Build<窗口>()` 构造函数。
* 新增:给按钮配「点击打开窗口 = 某子窗口」,生成的代码点击即打开(模态则锁父窗口);预览里点击也能真正弹出子窗口(含链式打开与模态锁定)。
* 新增:消息框 / 通知改为按钮点击动作:选中可点击控件配统一的「点击动作」(无 / 打开窗口 / 弹消息框 / 弹通知),生成对应 `_UI_Dialog` / `_UI_Notification` 调用,预览即时可交互。移除了旧的画布占位与预览底部「试触条」。
* 新增:子窗口标题改名时顶部标签实时同步;删除被按钮引用的子窗口时自动清理其「打开窗口」设置、代码生成也跳过悬空引用;补齐若干界面文案与翻译完整性。

## AUI 界面库 0.4.0 Beta(2026年6月26日)(Beta版)

界面库:

* 新增控件:分隔线 Divider `_UI_Divider` —— 一条横向或纵向的线,用于在布局中分割区域。`_UI_DividerSetThickness` 设线粗(0 填满带 / >0 居中细线)、`_UI_DividerSetInset` 设两端内缩,颜色复用 `_UI_SetColor`。
* 新增控件:分隔容器 SplitPane `_UI_SplitPane` —— 前两个子元素分到两个面板,中间分隔条可拖动调占比。`_UI_SplitSetRatio` 设占比、`_UI_SplitSetMinSizes` 设最小尺寸、`_UI_SplitSetCollapsed` 折叠面板
* 新增:Table 表头点击排序 `_UI_TableEnableSort`(数值/文本自动判定,升→降→不排)、脚本排序回调 `_UI_TableOnSort`(供虚表/自定义数据)。
* 新增:Table 列宽拖拽 `_UI_TableEnableColumnResize`(拖列边界改宽、双击边界按内容自适应)、每列对齐 `_UI_TableSetColumnAlign`、列隐藏 `_UI_TableSetColumnHidden`。
* 新增:Table / List / Tree 斑马纹 `_UI_TableSetZebra` / `_UI_ListSetZebra` / `_UI_TreeSetZebra`(随明暗主题自适应)。
* 新增:Table / List / Tree 行多选 `_UI_TableSetMultiSelect` / `_UI_ListSetMultiSelect` / `_UI_TreeSetMultiSelect`(Ctrl/Shift/Ctrl+A;全选用「标志 + 排除集,读取 `_UI_*GetSelectedCount` / `_UI_*GetSelectedAt` / `_UI_*IsAllSelected`。
* 新增:Table 条件着色 —— 单元格文字 `_UI_TableOnCellColor`、单元格背景 `_UI_TableOnCellBgColor`、整行 `_UI_TableOnRowColor`(回调返回 ARGB)。
* 新增:行/节点双击回调 `_UI_TableOnRowDblClick` / `_UI_ListOnRowDblClick` / `_UI_TreeOnNodeDblClick`;Table 单元格点击 `_UI_TableOnCellClick`。
* 新增:Table 单元格内联编辑 `_UI_TableSetEditable`(双击单元格编辑,复用输入控件,支持中文输入法 / 撤销 / 剪贴板)+ 提交回调 `_UI_TableOnCellEdited`(行,列,新文本;非虚表自动写回)。
* 新增:DatePicker 程序化设置日期 `_UI_DatePickerSetDate`("YYYY-MM-DD";读取当前值用 `_UI_GetText`)。
* 新增:网络图片改默认严格 TLS 校验(禁止 HTTPS→HTTP 降级)+ 放宽开关 `_UI_NetInsecureTLS`(证书异常的图床传 1)。
* 新增:拖拽重排 `_UI_TableSetReorderable` / `_UI_ListSetReorderable` / `_UI_TreeSetReorderable` + 回调 `_UI_*OnReorder`(Tree 可跨父级、自动防环;List/Table 近边缘自动滚动)。
* 新增:批量删除选中行 `_UI_TableDeleteSelectedRows` / `_UI_ListDeleteSelectedRows`,Delete 键删除(需显式开启)`_UI_TableEnableDeleteKey` / `_UI_ListEnableDeleteKey`。
* 新增:Tree 右键节点识别 `_UI_TreeGetContextNode`,节点动态操作 `_UI_TreeSetText` / `_UI_TreeExpand` / `_UI_TreeRemove` / `_UI_TreeClear` / `_UI_TreeGetCount` / `_UI_TreeGetParent`。
* 新增:List / Table / Tree 程序化选中 `_UI_*SetSelected` 与滚动定位 `_UI_ListScrollToRow` / `_UI_TableScrollToRow` / `_UI_TreeScrollToNode`。
* 新增:批量构建 `_UI_BeginUpdate` / `_UI_EndUpdate` —— 构建大量控件时把「逐控件重排」合并为一次重排,含数百控件的界面启动明显加快(可嵌套)。
* 新增:键盘焦点遍历 —— Tab / Shift+Tab 在可交互控件间切换,全控件支持纯键盘操作(Enter/Space 激活、方向键改选、Esc 关弹层);焦点环改为 focus-visible(仅键盘聚焦时显示)。
* 新增:键盘导航覆盖 List / Table / Tree / DatePicker / TimePicker / Slider(方向键 / Home/End / PageUp-Down / Enter);ComboBox 悬停滚轮改选项。
* 新增:输入框只读 / 最大长度 / 输入过滤 —— `_UI_SetReadOnly`、`_UI_SetMaxLength`、`_UI_SetInputFilter`(数字 / 数值 / 字母 / 字母数字)、`_UI_SetInputAllowed`(自定义白名单);Input 与 TextArea 通用。
* 新增:文本框默认右键编辑菜单 `_UI_EnableEditMenu`、聚焦全选 `_UI_InputSelectOnFocus`。
* 新增:文本输入撤销/重做(Ctrl+Z / Ctrl+Y)、按词移动与删词(Ctrl+←→ / Ctrl+Backspace / Ctrl+Delete,CJK 每字成词)、双击选词、Shift 扩选、TextArea 翻屏。
* 新增:输入校验错误态 `_UI_SetError`(红框 + 框下红字,输入即清除;Input 与 TextArea 均生效)。
* 新增:进度条不确定态 `_UI_ProgressSetIndeterminate`、百分比文字 `_UI_ProgressShowText`;NumberInput 步进按钮长按连续增减。
* 修复:输入框文本编辑未处理 UTF-16 代理对 —— 键入 emoji / 扩展区汉字后退格只删半个码元、光标落到字符中间,现退格 / 删除 / 方向键 / 鼠标命中统一按完整字符跨越(Input 与 TextArea)。
* 修复:`_UI_TreeGetText` 返回指向节点 vector 内部的悬垂指针(再 `_UI_TreeAdd` 即失效),改为缓冲区出参。
* 修复:网络图片缓存只增不减导致长跑内存持续增长 —— 加入 64 MB LRU 上限。
* 修复:焦点环改为 focus-visible —— 鼠标点击控件不再描一圈外框,仅键盘 Tab 聚焦时显示。
* 修复:公开 C 头文件 `aui.h` 遗漏 `_UI_SetGradient` 声明
* 修复:`_UI_Destroy` 销毁容器后子id 与 `focused/hovered/pressed/overlay` 悬垂—— 递归注销整棵子树并清空相关窗口级指针。
* 修复:粘贴按最大长度截断可能切断 UTF-16 留半个字形 —— 截断后丢弃末位孤立高位代理。
* 修复:滚轮步进按 DPI 缩放 —— 高 DPI 屏不再半速、多显示器一致(统一在分发点处理,不影响 ComboBox 滚轮换选项)。
* 修复:Mica / 透明窗口标题栏「月亮」图标的不透明小圆点 —— 改用几何相减一次成形月牙。
* 修复:回调表(CbMap)销毁时从不清理致长跑内存增长 —— 新增 `__AUI_CbDel` 并在 `_UI_Destroy` 清理对应项。
* 性能:渲染层画刷与文本格式改为按帧复用(`AddRef` 抵消 `Release`、调用点零改动),一帧上千次 COM 创建压成个位数。
* 性能:文本元素测量缓存 —— relayout 时内容未变即跳过 DirectWrite 测量,长列表滚动不再重测全树。
* 性能:网络图片下载改有界线程池(最多 6 并发),不再每个 URL 开一个线程。
* 重构:`theme.h` 合并 `get_token` / `set_token` 重复的偏移表为单一来源 `token_offsets()`。

## AUI 设计器 0.3.0 Beta(2026年6月26日)(Beta版)

设计器:

* 新增:反向导入(代码 → 画布)—— 把设计器生成的 AU3 代码解析回画布,实现双向往返。覆盖窗口、控件树、内容属性、布局样式、事件绑定、Tree 节点,做到逐字节无损。设计器界面「导入代码」按钮(Ctrl+I)
* 新增控件:分隔线 Divider(基础组)、分隔面板 SplitPane(容器组)入驻组件工具箱,贯通属性面板 / 代码生成 / 实时预览 / 反向导入。
* 同步:数据控件(Table / List / Tree)的新特性补进设计器 —— 属性含 列权重 / 列对齐 / 斑马纹 / 多选 / 列宽拖拽 / 排序 / 拖拽重排 / Delete 删除;事件含 选中 / 行(节点)双击 / 单元格点击 / 重排;下拉框 Combo 可绑选中事件
* 同步:表单控件新特性补进设计器 —— Progress(不确定态 / 显示百分比文字)、Input / TextArea / PasswordInput / Search(只读 / 最大长度)、Input(聚焦全选)。
* 同步:生成的 au3 构造区自动用 `_UI_BeginUpdate` / `_UI_EndUpdate` 包裹,控件多的界面启动只做一次布局重排。

## AUI 界面库 0.3.0 Beta(2026年6月22日)(Beta版)

界面库:

* 新增:网络图片异步加载 —— `_UI_Image` 路径支持 `http(s)` 网址,WinHTTP 后台下载不阻塞主线程,加载完成后淡入。
* 新增:图片填充模式 `_UI_SetImageFit`(包含 / 覆盖 / 拉伸)。
* 新增:圆形图片 `_UI_SetCircle`、圆角图片 `_UI_SetImageRadius`。
* 新增:宽高比锁定 `_UI_SetAspectRatio`,配合两遍布局按 w:h 约束控件尺寸。
* 新增:内在尺寸(measure_auto),控件可按内容自动测量大小。
* 新增:文本测量 `_UI_MeasureText`,返回一段文字的像素尺寸。
* 新增:文本自动换行 `_UI_SetWrap`。
* 新增:追加文本 `_UI_AppendText`,向 Text/TextArea 末尾追加内容。
* 新增:渐变背景 `_UI_SetGradient`。
* 新增:字号覆盖 `_UI_SetFontSize`、字体 `_UI_SetFont`,可对单个控件独立设置。
* 新增:文本溢出省略号,`draw_text` 接入 DirectWrite `SetTrimming`,超出区域自动末尾加「…」。
* 新增:拖动手柄 `_UI_SetDragHandle`,把任意控件设为窗口拖动区(配合无标题栏窗口)。
* 新增:列表项样式 `_UI_SetItemStyle` / `_UI_SetSelected`(悬停态、选中态)。
* 新增:事件冒泡 —— 点击容器内子控件时事件冒泡到容器,整行可响应。
* 新增:`$AUI_WIN_NO_THEME` 窗口标志,隐藏标题栏的主题切换按钮。
* 新增:子树主题覆盖 `theme_override`,可让某子树强制深色/浅色(如浅色窗口内的深色侧栏)。
* 新增:List 虚拟表格,大数据量仅渲染可见行。
* 新增:动画系统(悬停淡入淡出、按下缩放回弹、面板淡入),开箱即用无需配置。

* 修复:回调健壮性彻底加固 — AutoIt 回调函数签名不匹配导致的0xC0000005崩溃,统一规范化根治。
* 修复:使用非默认窗口标志时 RESIZABLE 窗口不可缩放。
* 修复:OnBeforeClose关闭前回调引发的栈损坏。
* 修复:List 虚拟表格 __stdcall崩溃、滚动条、行回调等多个问题。
* 修复:ScrollView 拖动滚动。
* 修复:Tree / Menu / ComboBox 的箭头与下拉指示符改用 Segoe MDL2 图标字体。
* 修复:Panel 暗色模式背景。
* 修复:窗口默认尺寸过小导致内容被裁。
* 修复:Timeline 节点重叠。
* 修复:输入光标 caret 编辑时崩溃。
* 修复:文字省略号裁剪、布局塌陷(measure_auto 宽度)。

## AUI 设计器 0.2.0 Beta(2026年6月22日)(Beta版)

设计器:

* 新增:WebView 网页控件 —— 内嵌浏览器加入组件面板,画布真实预览网页
* 新增:图片属性面板(填充模式 / 圆角 / 圆形 / 网络网址)。
* 新增:宽高比属性(宽:高锁定)。
* 新增:窗口标志属性(可缩放 / 圆角 / Mica 材质 / 无标题栏 / 居中 / 置顶 / 主题)。
* 新增:画布主题切换预览,画布与模拟标题栏跟随窗口主题切换深浅,左右工具栏不受影响。
* 新增:无标题栏预览,勾选后画布去掉模拟标题栏、顶部可放控件。
* 新增:外观属性(字号 / 字体 / 文字色 / 背景色 / 禁用 / 文字换行 / 卡片阴影 / 窗口拖动区),均按控件实际支持精确显示。
* 新增:窗口事件 `OnClose` / `OnResize` / `OnBeforeClose`(关闭前可拦截,生成的自带 `Return 1`)。

* 修复:WebView 占位 → 真实浏览器,设计器项目原先未启用 WebView2
* 修复:外观属性适用范围精确化 —— 背景色 / 换行 / 字号 / 文字色 / 阴影不再显示在不支持的控件上。
* 修复:无标题栏时画布顶部之前无法放置控件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 15威望 +5 金钱 +767 贡献 +16 收起 理由
fybhwsx + 80 更新0.6.0!
bfgxp + 40 很给力!
qq413774005 + 10 很给力!
24779987 + 10 很给力!
vspeitao@126.co + 20 很给力!

查看全部评分

发表于 2026-6-12 08:25:08 | 显示全部楼层
看上去灰常厉害啊
谢谢分享
发表于 2026-6-12 08:38:07 | 显示全部楼层
这个看着超赞啊,很多人一直在说GUI丑,这个巨大改善。。赞赞。。
发表于 2026-6-12 17:45:25 | 显示全部楼层
没想到Autoit也可以做这么没的GUI,爱,大爱,超级爱!!
发表于 2026-6-12 21:26:38 | 显示全部楼层
牛逼牛逼,这个UI太好看了吧。
发表于 2026-6-13 14:36:51 | 显示全部楼层
大佬流弊啊,感谢提供32位版本!!!
发表于 2026-6-14 05:39:10 | 显示全部楼层
楼主 真厉害,佩服
发表于 2026-6-14 16:24:50 | 显示全部楼层
新手怎么入门~~~~~~能解决新手入门的问题就好了
发表于 2026-6-14 16:30:41 | 显示全部楼层
牛逼,能不能读自己写的GUI
发表于 2026-6-15 07:52:32 | 显示全部楼层
创建tab的时候,在gui里面怎么编辑每个tab下面的控件?出个例子吧
发表于 2026-6-15 08:18:35 | 显示全部楼层
这个不错,au3界面就好看多了。
发表于 2026-6-15 08:51:22 | 显示全部楼层
楼主 真厉害,佩服
发表于 2026-6-15 11:01:23 | 显示全部楼层
好厉害 继续这样下去 我觉得AU3能在战20年
发表于 2026-6-15 11:22:49 | 显示全部楼层
大佬  提示AUI.au3  报错是什么原因?

C:\Users\Administrator\Desktop\1111111.jpg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2026-6-15 12:52:03 | 显示全部楼层
aixi769776971 发表于 2026-6-15 11:22
大佬  提示AUI.au3  报错是什么原因?

老版本没有map,升级
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-7-18 22:47 , Processed in 0.086761 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表