ucgui怎样实现字库与程序空间分离

 我来答
黑马程序员
2016-09-27 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
1、ucgui作为一个强大的GUI系统,现在嵌入式设备的开发上应用的越来越多了,现在对于在这套系统上的中文支持,控件功能扩展等方面的资料也很多,有兴趣的朋友可以到论坛里转悠一下,收获一定不少的。在Arm上利用这套GUI系统工作的时间也短了,现在也给大家说说自己的一些应用吧。大家都知道,程序与数据分离开对于开发还是维护都很有必要的,反正本人就很讨厌为download一个程序花上几分钟或上10分钟的时间的。ucgui提供一个字库的生成叫字体转换器软件,能方便的把window上的字库转换为满足ucgui要求的c文件(当然俺可不保证可随便盗版用MS的字体哦)。
2、生成的c文件格式大概为下面的形式GUI_CONST_STORAGE U8 acFontHZ16x16_0020[] ={________,________,...};......GUI_FLASH const GUI_CHARINFO GUI_FontHZ16x16_CharInfo[] ={{ 9, 9, 2, (void GUI_FLASH *)&acFontHZ16x16_0020 },...};......GUI_FLASH const GUI_FONT_PROP GUI_FontHZ16x16_Prop_a1 ={0xa1a1,0xa1fe,&GUI_FontHZ16x16_CharInfo[96],(void *)&GUI_FontHZ16x16_Prop_a2};GUI_FLASH const GUI_FONT_PROP GUI_FontHZ16x16_Prop_ASC ={0x0020, // first character0x007f, // last character&GUI_FontHZ16x16_CharInfo[0], // address of first character(void *)&GUI_FontHZ16x16_Prop_a1 // pointer to next GUI_FONT_PROP};GUI_CONST_STORAGE GUI_FONT GUI_FontHZ16x16 ={GUI_FONTTYPE_PROP_SJIS, // type of font16, // height of font16, // space of font y1, // magnification x1, // magnification y(void GUI_FLASH *)&GUI_FontHZ16x16_Prop_ASC};
3、如果想大改动的去修改Edit或Text控件关于显示字模的代码的话,本人觉得会有些难度并且没这个必要其实我们在调用ucgui显示的时候需要指定到底用哪个字库显示GUI_SetFont(&GUI_FontHZ16x16);在这里我们主要修改的就是GUI_FontHZ16x16改为一个非const类型变量,而把GUI_FONT结构(void GUI_FLASH *)指向的所有内容变成二进制文件都放在固定的数据地址就可以了,接着怎样把固定的那部分内容生成一个二进制文件呢?打开你的ADS,把GUI_FLASH const GUI_FONT_PROP GUI_FontHZ16x16_Prop_ASC以上所有的数组变成const类型存放为一个.c文件const GUI_FONT g_ResourceAddress = {&GUI_FontHZ16x16_Prop_ASC,};GUI_FONT * dbc_WindowsListAddr(void){return (GUI_FONT *)&g_ResourceAddress;}当然你还要设置一下Simple image的开始位置偏移地址.最后就是在程序中要把GUI_FontHZ16x16的GUI_FLASH *的指向到固定的flash位置就可以咯...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式