emwin显示汉字使用vs studio仿真和使用keil编写烧录的不同
我用emwin是在新唐的开发板上练习的,所有我就去官网下了开发板的资料,别的开发板应该也有对应的资料,这些软件网上应该很容易搜得到

然后用GUIBuilder构建一个界面,再用FontArchitect生成自己想要的中文字库,(还没看到这个工具之前我是用网上下的的FontCvt,功能差不多) emwin是不支持显示中文,很不友好
先上代码,
#include "DIALOG.h"
#include “GUI.h”
3 extern GUI_CONST_STORAGE GUI_FONT GUI_Fontfont16;
4 #define ID_WINDOW_MAIN_WINDOWS (GUI_ID_USER + 0x00)
5 #define ID_FRAMEWIN_BRIDGE (GUI_ID_USER + 0x01)
6 #define ID_FRAMEWIN_VIEW_COUNT (GUI_ID_USER + 0x02)
#define ID_FRAMEWIN_VIEW_COUNT (GUI_ID_USER + 0x02)
#define ID_FRAMEWIN_PARAMETER_SECTOR (GUI_ID_USER + 0x03)
9 #define ID_FRAMEWIN_KEY_BOARD (GUI_ID_USER + 0x04)
10
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, "Count", ID_FRAMEWIN_VIEW_COUNT, , , WINDOWS_SIZE_X, WINDOWS_SIZE_Y, , , },
{ TEXT_CreateIndirect, "Text", ID_TEXT_SHOW_ALL_COUNT, , , , , , , },
{ EDIT_CreateIndirect, "Edit", ID_EDIT_SHOW_COUNT_NUM, , , , , , , },
{ BUTTON_CreateIndirect, "return", ID_BUTTON_RETURN_COUNT, , , , , , , },
};
/*********************************************************************
*
* _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int Id, NCode; GUI_UC_SetEncodeUTF8(); switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
//
// Initialization of 'Edit'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_SHOW_ALL_COUNT);
TEXT_SetFont(hItem, &GUI_Fontfont16);
TEXT_SetText(hItem, "总张数\n"); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SHOW_COUNT_NUM);
EDIT_SetText(hItem, "");
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_EDIT_SHOW_COUNT_NUM: // Notifications sent by 'Edit'
switch(NCode) {
case WM_NOTIFICATION_RELEASED: break;
}
break;
case ID_BUTTON_RETURN_COUNT: // Notifications sent by 'return'
switch(NCode) {
case WM_NOTIFICATION_RELEASED:
WM_DeleteWindow(pMsg->hWin);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
} /*********************************************************************
*
* CreateCount
*/
WM_HWIN CreateCount(void) {
WM_HWIN hWin; hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, WM_HBKWIN, , );
return hWin;
} /*************************** End of file ****************************/
80
以上步骤keil和vs studio都是相同的
其中有几个点需要注意:
1、keil的文件最后一行必须要从头开始,不然会报错..\Application\SectorDLG.c(195): warning: #1-D: last line of file ends without a newline。 vs studio不会
2、keil的换行是\n,vs仿真的换行是\r\n,但是vs如果你想要显示的汉字个数为奇数个时,就必须在显示的最后面加个英文符号,或者加个\n,这个\n不会换行,也不会有其他作用(代码第36行就是为了避免奇数个中文的错误,如果是偶数个汉字就没这个问题了)
错误 C2001 常量中有换行符 SimulationTrial d:\setup\emwin\seggereval_win32_msvc_mingw_gui_v548\application\countdlg.c 36 和
错误 C2146 语法错误: 缺少“)”(在标识符“hItem”的前面) SimulationTrial d:\setup\emwin\seggereval_win32_msvc_mingw_gui_v548\application\countdlg.c 38
如果这个时候你的汉字还是显示不出来,记得把这个显示汉字的文件用记事本打开,另存为的时候保存为utf-8,就可以啦
emwin显示汉字使用vs studio仿真和使用keil编写烧录的不同的更多相关文章
- 在wex5平台grid里面的gridselect下拉不能显示汉字问题
当grid里面有gridSelect组件的时候,gridSelect里面的bind-ref是对应的数据库存入字段(int类型),bind-labelRef是对应的计算字段(视图里面的),而option ...
- emWin显示文本字符-【worldsing笔记】
在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.2 ...
- 逆向project第004篇:令计算器程序显示汉字(下)
一.前言 钩子技术是一项很有有用价值的技术.在Windows下HOOK技术的方法比較多,使用比較灵活,常见的应用层的HOOK方法有Inline HOOK(详见<反病毒攻防研究第012篇:利用In ...
- 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)
在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...
- 转 Mac 下自带的中文输入法不显示汉字提示问题
原文 https://blog.csdn.net/moxi_wang/article/details/50721326 当时聊天的时候不知道那个手指头按错了什么键 导致Mac自带的中文输入法不能提示显 ...
- 使用Tslib在触摸屏上显示汉字【转】
转自:http://www.latelee.org/embedded-linux/use-tslib-to-display-chinese-character.html 终于到了在触摸屏上显示汉字了, ...
- activiti部署到linux后流程图不显示汉字的问题
linux和windows的字体文件一般是不一样的,默认情况下,linux的java7中一般不支持中文,activiti的动态流程图中的汉字需要java调用汉字的字库,这里需要配置一下java的汉字字 ...
- 如何用Visual Studio 2013 (vs2013)编写C语言程序
如何用Visual Studio 2013 (vs2013)编写C语言程序 (2014-05-16 10:58:15) Visual Studio 2013是一个很强大的软件,但是刚开始用Visu ...
- EmWin 如何显示汉字 不用在文件中使用编码
1. Font Converter for emWin 生成C文件字库 1.1 新建文件 1.2 选择字体 1.3 为了减小C文件体积,这里只加入自己需要的汉字,先把所有字体取消选择. 1.4 新建一 ...
随机推荐
- 洛谷P3694 邦邦的大合唱站队【状压dp】
状压dp 应用思想,找准状态,多考虑状态和\(f\)答案数组的维数(这个题主要就是找出来状态如何转移) 题目背景 \(BanG Dream!\)里的所有偶像乐队要一起大合唱,不过在排队上出了一些问题. ...
- ip修改器
哈哈,算法来源于网络... 源码:http://pan.baidu.com/s/11P0P9 参考:http://bbs.csdn.net/topics/370201571 http://bbs.cs ...
- 'printf' Function
printf is not part of the C language; there is no input or output defined in C itself. printf is jus ...
- (私人收藏)2019科协WER解决方案
2019科协WER解决方案 含地图,解决程序,详细规则,搭建方案EV3;乐高;机器人比赛;能力风暴;WER https://pan.baidu.com/s/16sdFmM49bPijYw55i8ox1 ...
- css hack原理及常用hack
原理:利用不同浏览器对CSS的支持和解析结果不一样编写针对特定浏览器样式.常见的hack有1)属性hack.2)选择器hack.3)IE条件注释 IE条件注释:适用于[IE5, IE9]常见格式如下 ...
- day41 几个琐碎知识点
目录 一.死锁与递归锁(了解) 1 死锁 2 递归锁 二.信息量 三.Event事件 四.三种优先级数据操作 1 队列 2 堆栈 3 自定义优先级 五.进程池和线程池 基本使用 六.协程 七.geve ...
- 关于Pop!_OS 19.04有线网络始终正在连接
一开始使用Pop!_OS时就遇到这个问题,开机进入系统后明明网络没问题,WiFi正常可用, 但是插入网线后有线网络始终显示正在连接,然后可能过一会儿还会弹出来网络激活失败. 但是有可能在使用很久之后再 ...
- Maven 专题(一):Maven 安装与配置(vscode)
0.首先了解一下maven安装目录 Bin:该目录包含Mvn运行的脚本 Boot:Maven自身的类加载器框架 Conf:包含非常重要的文件setting.xml Lib:该目录包含了所有Maven运 ...
- 数据可视化之powerBI入门(八)PowerQuery学习:认识M函数
https://zhuanlan.zhihu.com/p/64148928 前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻 ...
- javascript基础(五): jQuery
jQuery javaScript和jQuery的关系? jQuery库,里面存在大量的JavaScript函数 获取jQuery 公式:$(selector).action() <!DOCT ...