硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4388|回复: 5
收起左侧

[emWin] 怎样用emwin中汉字与数字同行居中显示

[复制链接]

7

主题

18

回帖

39

积分

新手上路

seven spark

积分
39
QQ
发表于 2020-7-3 11:14:32 | 显示全部楼层 |阅读模式
需要这样显示XXXX【】【】XX,X表示数字,【】表示汉字,且数字与汉字的字体不同。其中【】汉字固定,X数字内容变化,变化范围在(0~9999),现在需要XXXX【】【】XX显示在同一行,且需要在屏幕的横向居中显示,这样怎么操作呢?如果每次都来判断数字的范围来确定显示的坐标,这方法虽然可以,但是太过麻烦,请问有比较好的思路和方法吗?
回复

使用道具 举报

4

主题

122

回帖

134

积分

初级会员

积分
134
发表于 2020-7-3 12:00:31 | 显示全部楼层
1.双标签任何情况显示4位数比如0显示0000就不存在位置变化
2.双标签数字右对齐,但总体上还是不居中
3.无标签GUI_DispStringAt()写数字然后改字体GUI_DispChar()写中文。前面需要根据数字位数计算X坐标。一共4种可能
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

seven spark

积分
39
QQ
 楼主| 发表于 2020-7-3 12:33:12 | 显示全部楼层
hance2000 发表于 2020-7-3 12:00
1.双标签任何情况显示4位数比如0显示0000就不存在位置变化
2.双标签数字右对齐,但总体上还是不居中
3.无 ...

1、要求最高位是0的时候不显示
2、右对齐不能满足居中
3、需要多次计算,比较麻烦,现在最后面又多了2位变化的数字显示,可能性更多了
回复

使用道具 举报

9

主题

113

回帖

145

积分

初级会员

积分
145
发表于 2020-7-3 17:26:54 | 显示全部楼层
直接在WM_PAINT中绘制,调用计算字符串显示宽度的API,计算不同字体下不同字符串的宽度,(屏宽-宽度和)/2即为第一个字符串的起始位置,后续字符串直接调用GUI_DispStri进行显示即可(当然,需要在合适的位置设置字体)。垂直对齐的话可以通过获取字体高度来计算。详情况看我之前发表过的帖子:http://www.armbbs.cn/forum.php?m ... id=83101&extra=
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

seven spark

积分
39
QQ
 楼主| 发表于 2020-7-3 18:05:49 | 显示全部楼层
yanchao7788 发表于 2020-7-3 17:26
直接在WM_PAINT中绘制,调用计算字符串显示宽度的API,计算不同字体下不同字符串的宽度,(屏宽-宽度和)/2即 ...

大赞,立即查看
回复

使用道具 举报

7

主题

18

回帖

39

积分

新手上路

seven spark

积分
39
QQ
 楼主| 发表于 2020-7-18 15:51:36 | 显示全部楼层
现在我又出来个问题,居中显示是好了,但是我由长度长的字符串切换到长度短的字符串显示的时候,长的字符串会有部分笔画残留在显示屏上。我现在处理的是每次数据更新前先清屏一次,在重新写。这样就存在一个问题,肉眼能可见到显示的内容有闪动的现象,就是清屏的现象。我将数据更新的速度打到20ms还是肉眼可见清屏抖动,大家遇到过这种问题吗?小弟在线等解答、、、
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-19 07:10 , Processed in 0.492908 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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