问题描述:
emWin 中文字体显示
概述:本文档主要介绍STemWin 显示中文汉字的步骤,分为以下部分:汉字C 文件字库的制作,显示文字UTF-8码的制作,程序实现。
一,汉字C 文件字库的制作
第一步:
安装字体函数生成软件:如下
安装完成后:
电脑桌面显示图标如下
第二步:
创建自己想要的字体库:
1、 开始创建一个TXT 格式的文本文件
2、 打开文本文件输入想要调试EMWIN 界面显示的所需中文文字
3、 文字输入完成后,另存TXT 文件为Unicode 格式文件
注意:另存文件名最好不要使用中文(建议取字体类型:如宋体:songFont ),保存编码选项一定要选Unicode ,最后保存在自己创建的文件夹中,文件夹最好不用中文(建议:保存字库的文件夹放在工程项目文件夹中)
4、 另存好文件后,打开第一步安装好的软件,初始界面如下
字体类型选择
以下教程只做国际标准字体显示,其他字体类型相信步骤一样,因此选择
Standard
点击OK ,进入字体选项界面
1、字体选择
2字形
3字体大小
5、 黄色圆框(字体显示方式:Pixels:像素点;Points:点),其中选中Points 才可
以选择字体大小,设置完成点击确定。出现界面
6、 接下来:禁止所有字符
然后读取(添加)前面所创建另存为Unicode 编码格式的文件
添加自己的文件后,另存文件
保存文件在第二步-3的文件夹中,也可以重新创建,但前提是不用使用中文文件夹名,保存的.c 文件也不用中文。保存后在文件夹中会生成一个c_file(.c 文件)
打开文件有很多XXX 构成的实际中文字, 如上图就是我们所要显示正确的数据。如果看不清是什么字,如下图
:
那么你用的转换软件是试用版本,那你就要找到一个正版,如果找不到可联系我zbxiong@139.com。上面是一个正式版和试用版分别转换的同一个”发”字了。 致此,汉字C 文件字库的制作完成。
二,显示文字UTF-8码的制作
Step1:创建一个TXT 格式的文本文件,把要显示的汉字写入其中。
Step2:文字输入完成后,另存TXT 文件为UTF-8格式的文件,文件名为数字或英文字母。
Step3:
打开软件:
界面如下:
点击A ,进入文件选择,要选择的文件是Step2:中保存的文件,然后点击B 进行转换,这时,在同一文件夹中会出现与Step2同名的c_file(即.c 文件),此文件就是接下来复制到模拟器工程中需要显示的中文汉字UTF-8码,(格式如:
)
注:此步骤的转化方法多样:还可以在线网页等。
到此,显示文字UTF-8码的制作完成。
三,程序实现
首先向VS2013打开EMWIN 模拟器工程中添加中文字体库函数的.c 文件(c_file)
1、在VS2013工作界面
工程项目下的应用文件夹中添加“汉字C 文件字库的制作”生成的c_file文件,添加方法像用Keil 添加.C 程序文件一样,为方便工程文件的管理,相信可以字体在工程中新建一个文件目录用于专门放置字体c_file文件,以上添加字体库函数c_file文件步骤参照Keil 的文件添加步骤即可实现。
到这一步向工程中添加文件完成了,接下来是最后的程序调用。
在引用字体文件里加一句: 全局变量申明:此句不用自己编写,在我们往模拟器调试工程中添加的字体库函数中有,只需要复制粘贴到需调用字体的文件下即可。
注意:在程序初始化后加一句GUI_UC_SetEncodeUTF8(); //使用UTF8编码,此函数为EMWIN 官方的函数库中提供。
例子:
初始化:
例子:在Button 按键中显示汉字
要操作的步骤:把要显示汉字的UTF-8码代替原来的文本、把原来的字体改为需要显示字体地址,如下面红色圈圈。
当然,我们也可以先定义一个char 型指针变量或数组用于存放要显示汉字的UTF-8码,然后再进行显示操作,例如:
char *apButton_Return = "\xe8\xbf\x94\xe5\x9b\x9e";
BUTTON_SetText(hItem, apButton_Return);
BUTTON_SetFont(hItem, &GUI_FontsongFont_12);
至此,emWin 汉字显示介绍完毕, 是不是很简单了。
说明:上面是别人所写,
我只是完善了一下,谁写的我也不清楚, 在此表示感谢。
问题解答:
我来补答