硬汉嵌入式论坛

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

[emWin] 显示不能打出来的XBF库字符方法

[复制链接]

7

主题

85

回帖

111

积分

初级会员

积分
111
发表于 2019-10-11 11:18:31 | 显示全部楼层 |阅读模式
本帖最后由 JIKIMO 于 2019-10-11 11:23 编辑

XBF格式是emWin原生态支持的unicode编码方式字库,使用keil或者iar编译源代码的文本格式需要utf8方式,并且keil需要带bom可以编译通过,略麻烦。
进入正题,按照正常来讲,我们需要显示什么就直接在源码里写字符串即可,比如“你好”,这样就很简单。但是这个全字库包含最大0xffff个字,不是所有的字符你都能通过输入法打出来,如下图,这些奇怪字符,你压根都不知道念啥:
QQ截图20191011110645.bmp
这个时候就得定义一个字符串数组,比如我们要显示如下这个符号
QQ截图20191011111017.bmp
这符号的unicode编码位置在0x0416,需要转换成utf8编码,打开下面这个在线转换
https://www.qqxiuzi.cn/bianma/Unicode-UTF.php
QQ截图20191011111255.bmp
查出utf8编码是D096,现在就可以在程序里填充到定义的字符串数组,如下:
  1. buf[0] = 0xd0;
  2. buf[1] = 0x96;
  3. buf[2] = '\0';
  4.                         
  5. hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
  6. TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
  7. TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
  8. TEXT_SetFont(hItem, &XBF_Font36);
  9. TEXT_SetText(hItem, buf);
复制代码
这样就可以显示这个特殊符号了。

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115785
QQ
发表于 2019-10-11 11:34:55 | 显示全部楼层
非常感谢楼主分享
回复

使用道具 举报

7

主题

85

回帖

111

积分

初级会员

积分
111
 楼主| 发表于 2019-10-11 11:57:47 | 显示全部楼层
eric2013 发表于 2019-10-11 11:34
非常感谢楼主分享

感谢硬汉老大一路的技术支持,尽自己微薄之力帮人帮己。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115785
QQ
发表于 2019-10-11 12:27:23 | 显示全部楼层
JIKIMO 发表于 2019-10-11 11:57
感谢硬汉老大一路的技术支持,尽自己微薄之力帮人帮己。

回复

使用道具 举报

9

主题

140

回帖

187

积分

初级会员

积分
187
QQ
发表于 2019-10-16 11:41:26 | 显示全部楼层
我的观点还是直接显示字符好,输入法打不出来,可以通过复制字符,TEXT_SetText(hItem, “Ж”);这样比较清晰,像TEXT_SetText(hItem, “\xD0\x96”);过一段时间后,自己可能都不知道显示什么了
回复

使用道具 举报

7

主题

85

回帖

111

积分

初级会员

积分
111
 楼主| 发表于 2019-10-17 15:10:47 | 显示全部楼层
allyzc 发表于 2019-10-16 11:41
我的观点还是直接显示字符好,输入法打不出来,可以通过复制字符,TEXT_SetText(hItem, “Ж”);这样比较清 ...

能复制进去那是最好,不过keil编辑器不一定都能显示你要的字符,比如简单的℃都显示不了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 09:48 , Processed in 0.279491 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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