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工程下载

5.Emwin控件显示中文相关推荐

  1. VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示

    1.VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示 2.以前也有Excel导入通用功能,但速度有些慢一会把两种实现方式都提供出为参考对比. 一.原通用导入exc ...

  2. C#之windows桌面软件第十二课:电脑ADC值显示(上位机),记忆上次串口号,并用TrackBar控件显示ADC值

    C#之windows桌面软件第十二课:电脑ADC值显示(上位机),记忆上次串口号,并用TrackBar控件显示ADC值 using System; using System.Collections.G ...

  3. 演练GridView控件显示目录图片

    本博文,将带你学习使用GridView控件显示站点目录的图片.如果你已经学会怎样做图片缩略图:怎样应用接口来实现统一的属性,方法或函数:怎样动态加载用户控件,等等.就不必往下看了.因为此篇博文就是演练 ...

  4. 在 Wi ndows,MSComm控件在中文Wi的ndows下的通信问题与处理方法.doc

    MSComm控件在中文Wi的ndows下的通信问题与处理方法 MSComm控件在中文Windows下的通信问题与处理方法 摘 要VB 5.0/6.0的MSComm通信控件提供了一系列标准通信命令的接口 ...

  5. 部门树形结构,使用Treeview控件显示部门

    部门树形结构.设计张部门表用于存储部门编码.名称.上级部门id,使用Treeview控件显示部门树,并实现部门增删改.移动.折叠等功能.特别提示,部门有层级关系,可用donetbar的adtree控件 ...

  6. ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布

    ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述 ...

  7. delphi7 mysql控件_Delphi7连接MySql数据库-DBGrid控件显示数据

    一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建 ...

  8. ActiveReports 报表控件官方中文新手教程 (1)-安装、激活以及产品资源

     本系列文章主要是面向初次接触 ActiveReports 产品的用户,能够帮助您在三天之内轻松的掌握ActiveReports控件的基本用法,包含安装.激活.创建报表.绑定数据源以及公布等内容. ...

  9. html设置控件位置大小,下面那个代码段设置myButton控件显示在HTML页左上角100px的位置 - 问答库...

    问题: [多选] 下面那个代码段设置myButton控件显示在HTML页左上角100px的位置?() A . B . C . D . 调度例行会议形式有什么() 生产平衡会. 事故分析会. 调度专业会 ...

最新文章

  1. pytorch--nn.Sequential学习
  2. A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
  3. 深入理解JavaScript系列(3):全面解析Module模式
  4. pytest集成Allure Report
  5. Android Kotlin Coroutines ktx扩展
  6. django web 自定义通用权限控制
  7. Windows Phone 7 开发 31 日谈——第22日:应用?还是 游戏?
  8. python中info的用法_Python pandas.DataFrame.info函数方法的使用
  9. iOS开发造轮子 | 通用占位图
  10. 腾讯回应多闪弹窗事件;京东要求员工梳理亲戚同学关系;雷军董明珠十亿赌局胜负已定 | 极客头条...
  11. groovy学习(四)io
  12. 主机不可达和端口不可达
  13. ubuntu安装nat123
  14. java毕业设计小区停车场管理系统(附源码、数据库)
  15. STP协议:生成树协议(二层防环机制:防止网桥网络中冗余链路形成环路工作)
  16. ACM程序设计大赛简介
  17. 听刘万祥老师讲“竖向折线图”、“点图”画法
  18. github分支操作
  19. Unity功能点---模拟枪械射击时的后坐力
  20. golang办公工作流workflow js-ojus/flow包介绍——系列一

热门文章

  1. EI文献类型(Document Type)
  2. 小程序跳转到另一个小程序很慢很卡
  3. 国内和海外做游戏运营会有哪些不同?
  4. html 气泡动画效果,css3实现好看的气泡按钮动画特效
  5. 【Unity】安卓adb 手机WiFi 调试安装应用
  6. java-net-php-python-jspm零担快跑物流管理系统计算机毕业设计程序
  7. CUDA: 程序优化的15个策略
  8. html 页面右侧浮窗 CSS,CSS实现广告右侧悬浮效果
  9. LeetCode-118
  10. 图像处理;C++求已知两直线方程交点