全局文字颜色批量设置:一个回调函数同步改画面所有文本控件的文字颜色,实现”亮色模式 ↔ 暗色模式”即时切换。定制固件专属。
1. 前置配置(两步)
- 全局启用控件分组:工程属性 → 控件分组 → 启用。不启用则所有控件忽略分组属性
- 控件分配分组标识:控件属性面板 → 控件ID,必须 ≠ 0(0 为默认无效值,表示未分组)
2. on_wgt_text_color(screen, control)
系统在控件刷新时调用此回调,返回指定控件显示时用的文字颜色(RGB565):
function on_wgt_text_color(screen, control)
local mode = get_uint16(VT_LW, 0x1000) -- 0=亮色模式, 1=暗色模式
if mode == 0 then
return 0x0000 -- 亮色模式: 黑字
else
return 0xFFFF -- 暗色模式: 白字
end
end
支持批量设置的控件:文本、数值、位状态指示灯(文字部分)等文本类控件。

注意两点:①控件分组功能必须先在工程属性里启用,控件 ID 非 0 才参与回调;②返回的是 RGB565 色值,0x0000 黑、0xFFFF 白,和 set_pen_color 同一套色域。
整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)LUA 教程「文字颜色控制」,版权归大彩科技所有。
发表回复