一直在使用emWin做项目,也曾经为怎么让界面显示汉字而苦恼过。但是,现在我想分享给大家两个办法(或者说是两个工具)来实现emWin显示汉字,可以直接在工程里面直接类似TEXT_SetText(hItem, “emWin会做中文字库,就是这样任性”);调用,随心所欲!

一个“fontcvt ”工具!直接搞定! (我用的是FontCvt_V516)
这个工具是UCGUI /emWin官方提供的外语工具,不仅可以生成汉字字库,还可以生成其他语言(泰语、日语等字库)。

使用方法:

第一步:安装SetupFontCvt_V516.exe.
第二步:选择“Type of font to generate”,这里面可以选择字体效果。其中有标准模式、2位抗锯齿模、4位抗锯齿模…
选择“Encoding”,编码模式(默认16Bit)。

第三步:点击OK,就可以进入字体和字号的选择。如图

第四步:清除所有字体(目的是为了方便第五步添加自定义汉字)。操作如下图:

第五部:直接导出当前文件中的选中的字(其实导出后文件是空的,原因上一步已经清除了全部选中的汉字),这一步的目的是为了获取Unicode编码的“.txt”文件(方便第六步导入自己使用的汉字),原因是fontcvt这个软件,只识别unicode编码的.txt文件导入,其他编码的文件导入不成功。

第六步: 打开上一步生成的.txt文件,放入自己需要的汉字。然后保存。
第七步:点击下图选项,导入刚刚保存的.txt文件:

第八步:(第七步导入后,可以看到,自己所用到的字,已经在字池里泛白显示了),点击文件另存为,起一个英文名字,然后保存为.c文件,字库就生成成功了!

以上步骤,可以实现字库的制作,接下来,还有更重要的一步骤,那就是如何在GUI里面直接调用汉字字符串,而不使用U2C.exe工具转换译码!只需要以下两点:
1:将编译器(如keil)的默认编码方式,改为UTF-8,更改方式如下:


2: 在初始化emwin的时候,一定要注意,在初始化函数中添加一句:

GUI_UC_SetEncodeUTF8();

到这里,第一种方法已经大功告成!你可以设定你的空间使用刚刚生成的字库,然后直接使用如:TEXT_SetText(hItem, “程序”);,就可以显示想要的效果了!我的显示效果如下:


作者:MicleD http://blog.sina.com.cn/s/blog_14127a7e00102v82i.html