本文共 3288 字,大约阅读时间需要 10 分钟。
CMD_GRADIENT用于绘制渐变色,需要结合SCISSOR功能使用。以下是命令定义及示例代码:
#define ftCoCmdGradient(x0, y0, rgb0, x1, y1, rgb1){ ftWrDispCmd(CMD_GRADIENT); ftWrDispCmd(((uint32_t)(y0) << 16) | ((x0) & 0xffff)); ftWrDispCmd(rgb0); ftWrDispCmd(((uint32_t)(y1) << 16) | ((x1) & 0xffff)); ftWrDispCmd(rgb1);} 命令参数说明:
x0, y0:渐变色的起点坐标x1, y1:渐变色的终点坐标rgb0:起点颜色(RGB888格式)rgb1:终点颜色(RGB888格式)示例代码:
ftWrDispCmd(SCISSOR_SIZE(PANEL_WIDTH / 2, PANEL_HEIGHT));ftWrDispCmd(SCISSOR_XY(0, 0));ftCoCmdGradient(0, 0, 0x0000ff, PANEL_WIDTH / 2, 0, 0xff0000);ftWrDispCmd(SCISSOR_XY(PANEL_WIDTH / 2, 0));ftCoCmdGradient(PANEL_WIDTH / 2, 0, 0xff0000, PANEL_WIDTH - 1, 0, 0x0000ff);ftWrDispCmd(SCISSOR_SIZE(PANEL_WIDTH, PANEL_HEIGHT));ftWrDispCmd(SCISSOR_XY(0, 0));
CMD_KEYS用于绘制按键行。命令定义及示例代码如下:
#define ftCoCmdKeys(x, y, w, h, font, options, s){ uint16_t len = strlen((char *)s) + 1; ftWrDispCmd(CMD_KEYS); ftWrDispCmd(((uint32_t)(y) << 16) | ((x) & 0xffff)); ftWrDispCmd(((uint32_t)(h) << 16) | w); ftWrDispCmd(((uint32_t)(options) << 16) | font); ftWrDispBuf(s, len);} 命令参数说明:
x, y:按键的位置坐标w, h:按键的宽度和高度font:字体大小和类型options:按键样式控制(如OPT_FLAT、OPT_CENTER等)s:按键对应的显示字符串示例代码:
ftCoCmdKeys((PANEL_WIDTH / 2 - 150), (PANEL_HEIGHT / 2 - 40), 140, 30, 26, 0, "12345");ftCoCmdKeys((PANEL_WIDTH / 2 - 150), (PANEL_HEIGHT / 2 + 40), 140, 30, 26, OPT_FLAT, "12345");ftCoCmdKeys((PANEL_WIDTH / 2 + 10), (PANEL_HEIGHT / 2 - 56), 116, 28, 29, 0 | tagValue, "789");ftCoCmdKeys((PANEL_WIDTH / 2 + 10), (PANEL_HEIGHT / 2 - 26), 116, 28, 29, 0 | tagValue, "456");ftCoCmdKeys((PANEL_WIDTH / 2 + 10), (PANEL_HEIGHT / 2 + 3), 116, 28, 29, 0 | tagValue, "123");ftCoCmdKeys((PANEL_WIDTH / 2 + 10), (PANEL_HEIGHT / 2 + 33), 116, 28, 29, 0 | tagValue, "0.");
CMD_PROGRESS用于绘制进度条。命令定义及示例代码如下:
#define ftCoCmdProgress(x, y, w, h, options, val, range){ ftWrDispCmd(CMD_PROGRESS); ftWrDispCmd(((uint32_t)(y) << 16) | ((x) & 0xffff)); ftWrDispCmd(((uint32_t)(h) << 16) | w); ftWrDispCmd(((uint32_t)(val) << 16) | options); ftWrDispCmd(range);} 命令参数说明:
x, y:进度条的位置坐标w, h:进度条的宽度和高度options:样式控制(如OPT_FLAT)val:当前进度值range:进度的最大值示例代码:
ftCoCmdProgress((PANEL_WIDTH / 2 - 60), (PANEL_HEIGHT / 2 - 30), 120, 12, 0, progress, 10);ftCoCmdProgress((PANEL_WIDTH / 2 + 120), (PANEL_HEIGHT / 2 - 60), 12, 120, OPT_FLAT, progress, 10);
CMD_SCROLLBAR用于绘制卷动条。命令定义及示例代码如下:
#define ftCoCmdScrollBar(x, y, w, h, options, val, size, range){ ftWrDispCmd(CMD_SCROLLBAR); ftWrDispCmd(((uint32_t)(y) << 16) | ((x) & 0xffff)); ftWrDispCmd(((uint32_t)(h) << 16) | w); ftWrDispCmd(((uint32_t)(val) << 16) | options); ftWrDispCmd(((uint32_t)(range) << 16) | size);} 命令参数说明:
x, y:卷动条的位置坐标w, h:卷动条的宽度和高度options:样式控制(如OPT_FLAT)val:当前滚动值size:卷动条移动部分的大小range:滚动的最大范围示例代码:
if (progress < 10 - 4){ ftCoCmdScrollBar((PANEL_WIDTH / 2 - 60), (PANEL_HEIGHT / 2 - 30), 120, 12, 0, progress, 4, 10);}else{ ftCoCmdScrollBar((PANEL_WIDTH / 2 - 60), (PANEL_HEIGHT / 2 - 30), 120, 12, 0, 6, 4, 10);}if (progress < 10 - 5){ ftCoCmdScrollBar((PANEL_WIDTH / 2 + 120), (PANEL_HEIGHT / 2 - 60), 12, 120, OPT_FLAT, progress, 5, 10);}else{ ftCoCmdScrollBar((PANEL_WIDTH / 2 + 120), (PANEL_HEIGHT / 2 - 60), 12, 120, OPT_FLAT, 5, 5, 10);} 以上命令可根据实际需求灵活配置,支持多种样式和动态更新。
转载地址:http://lqqx.baihongyu.com/