5.Emwin控件显示中文

Emwin模拟器控件(text、radio、multiedi、dropdown等)显示中文(移植GUI到32单片机上也可以正常显示)

我这个办法可以在pc模拟器上显示中文,同时界面做好了中文显示之后,要移植到32上面无需重新制在32上显示中文的字库,移植成功后可以直接在屏幕上显示中文,和pc的一样显示,
当然,也有缺点,就是如果想要添加新的字,那就要重新制作这个文件库。两个都要,所以这是比较麻烦的

1.准备工具:

平台:VS(本人VS2013)
1.Unicode编码的txt文本文件(win10是“UTF-16 LE”)
2.UTF-8 编码的txt文本文件(win10是“带BOM的UT”)
内容可以自己定,但是两个内容要一致
3.GUIbuilder 软件
4.emWin Font Converter
5.U2C

没有这些工具的可以自己去Emwin官网下载(需注册)

首先第一步,先用GUIbuilder先生成一个界面,包含好几个控件在这里插入图片描述
生成代码后先加入到VS工程里面

2.生成字库

1.先打开准备好的emWin Font Converter按照以下步骤操作

选择standard ok
在这里插入图片描述在这里插入图片描述

选自己需要的字体、大小、类型
这里我自己选择宋体 ,粗体,18x18大小
选择 Pixels
在这里插入图片描述
然后禁用所有字符,当然你可以不禁用,但是生成的c文件就是全字库,很大
在这里插入图片描述
然后使能一部分字符范围是0-7F 就是包含日常使用的数字、标点符号、字母等。在这里插入图片描述
范围:0-7F 在这里插入图片描述

然后读取你自己刚刚生成的字库(Unicode编码的txt文本文件)在这里插入图片描述
在这里插入图片描述

然后另存为,名字最好是英文。
在这里插入图片描述
2.用U2C这个软件把UTF8编码的txt文件转化成c文件,名字和之前的一样。在这里插入图片描述
生成c文件
在这里插入图片描述
然后打开这个txt文本和对应的c文本,如图
在这里插入图片描述

然后对生成的c文件进行处理,左右对应标上标注
用const char XXX []= 给他命名,

在这里插入图片描述
好了字库的制作到这里就算完成了,接下来就要把c字库添加到vs工程里面了

3.添加字库到工程里

添加之前制作好的界面c文件

在这里插入图片描述

添加好了之后先把工程调好能够模拟器运行

在这里插入图片描述
然后打开字库的c文件,很明显可以看到字了,就是我们刚刚设置的

在这里插入图片描述
然后把这句

extern GUI_CONST_STORAGE GUI_FONT GUI_FontSongFront18;//每个文件因为命名不同,这句话都有所不同

复制粘贴到界面的c文件
并且把刚刚转换好的UTF8的c文件里的复制过来
在这里插入图片描述

extern GUI_CONST_STORAGE GUI_FONT GUI_FontSongFront18;

const char time[] = "\xe6\x97\xb6\xe9\x97\xb4";//时间
const char check[] = "\xe5\x8b\xbe";//勾
const char Chinese[] = "\xe4\xb8\xad\xe6\x96\x87";//中文
const char English[] = "\xe8\x8b\xb1\xe8\xaf\xad";//英语
const char choose[] = "\xe8\xaf\xad\xe8\xa8\x80\xe9\x80\x89\xe6\x8b\xa9";//语言选择
const char page[] = "\xe9\xa1\xb5\xe9\x9d\xa2";//页面
const char CSDN[] = "\xe6\x88\x91\xe7\x9a\x84""CSDN\xe5\x9c\xb0\xe5\x9d\x80\xef\xbc\x9a";//我的CSDN地址
const char so[] = "\xe5\xa5\xbd\xe9\x95\xbf\xe7\x9a\x84\xe4\xb8\x80\xe5\x8f\xa5\xe8\xaf\x9d";//好长的一句话

然后接下来就是替换了
在这里插入图片描述
我这里直接用vs里的代码替换全部替换掉
GUI_FontSongFront18
替换的字库需要加& 取址
在这里插入图片描述
在这里插入图片描述
替换好了,接下里就是你想让哪一个控件显示哪些中文,就自己还,比如

    hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
	DROPDOWN_SetFont(hItem, &GUI_FontSongFront18);
    DROPDOWN_AddString(hItem, Chinese);
    DROPDOWN_AddString(hItem, English);
    //
    // Initialization of '废话'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
	TEXT_SetFont(hItem, &GUI_FontSongFront18);
	TEXT_SetText(hItem, so);
    //
    // Initialization of 'Multiedit'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIEDIT_0);
	MULTIEDIT_SetFont(hItem, &GUI_FontSongFront18);
    MULTIEDIT_SetText(hItem, CSDN);
    //
    // Initialization of '语言选择'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_0);
	RADIO_SetFont(hItem, &GUI_FontSongFront18);
    RADIO_SetText(hItem, Chinese, 0);
    RADIO_SetText(hItem, English, 1);

4.大功告成

English。CSDN这些我都已经定义好了
好了,直接上最终结果图了
在这里插入图片描述

在这里插入图片描述
下周看看有没有空,有空顺便把移植到32上,然后显示给你们看

EmwinVS2017工程下载

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值