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 新建一 ...
随机推荐
- 关于 charset 的几种编码方式
经常遇到charset=gb2312.charset=iso-8859-1.charset=utf-8这几种编码方式,它们有什么不同,看下面的图 编码方式 含义 charset=iso-8859-1 ...
- Animate.css的使用(基本使用附css文件下载地址)
animate.css下载地址: https://pan.baidu.com/s/18ceucCU1loYiGo5OCOkJBg 最新下载地址: http://www.haorooms.com/upl ...
- 浅谈MySQL多表操作
字段操作 create table tf1( id int primary key auto_increment, x int, y int ); # 修改 alter table tf1 modif ...
- Kail系统更新指令
0x00源更新 国内更新源 leafpad /etc/apt/sources.list 然后复制粘贴下面的源 #kali官方源 deb http://http.kali.org/kali kali-r ...
- HttpContext, HttpContextBase, HttpContextWrapper之间关系
HttpContext是最原始的ASP.NET Context. MVC的目的之一是能够单元测试. HttpContextBase, 是用来在MVC中替代HttpContext.但是这是一个abstr ...
- day66 django进阶(2)
目录 一.choices参数(数据库字段设计常见) 二.MTV与MVC模型 三.多对多三种创建方法 1 全自动 2 纯手动 3 半自动 四.AJax 小 一.choices参数(数据库字段设计常见) ...
- day40 作业
利用线程和进程实现tcp 服务端 from multiprocessing import Process from threading import Thread import socket def ...
- day10 字符编码
字符编码 在python中出现乱码就是字符编码没有匹配的问题 python3中执行python3编辑的代码只要没有修改过编码,都是用utf-8,如果出现乱码就修改头文件,改成和原来编码相同的字符编码 ...
- Python 列表生成式 生成器
[x for x in os.listdir("F:\XXX")] 生成器(x * x for x in range(10)) 如果列表元素按照某种算法推算出来,那我们就可以在循环 ...
- 1-The next outbreak we're not ready
When I was a kid, the disaster we worried about most was a nuclear war. [wen aɪ wəz ə kɪd]