microwindows 中文显示问题的解决

最近由于项目要使用新的GUI,涉及到microwindows 的移植,因此开始接触microwindows。
microwindows 是运行在嵌入式系统下的开源GUI项目,对linux有很好的支持。系统采用分层的设计方案以满足不同的实现需要。总体分为三层:最下面的设备驱动层、中间的图形引擎层、面向应用程序的API接口层。设备驱动部分提供了屏幕、鼠标/触摸屏、键盘以及其它I/O设备的实际操作,并向上提供统一接口以实现设备无关图形引擎。中间层实现了画点、画线、多边形、剪切区以及颜色模式设置等功能。

下载源代码包后,解压,然后进入/microwindows-0.91/src 运行./xconfigure,出现相应的图形选项,当然也可以直接编辑config。配置好后make,make install.make install会自动把库文件拷贝到linux的lib目录下。

下面重点介绍microwindows对中文的支持。micorowidows-0.91支持中文。 中文不同于ASCII字符,一个中文需要2个字节来编码,通用的中文编码标准有GB2312、GBK、GB18030、BIG5(繁体),在嵌入式系统中我们采用GB2312标准,也是国家标准。为了区别中文与基本的ASCII字符,汉字的编码的每个字,最高位均为1,而0-127之间的编码用于基本的 ASCII字符,因此我们可以同时显示中文与英文,而不会出现问题。而不同的多字节编码之间是不容易区分的,比如中文与日文,还有拉丁文,因此一些系统在进行处理的时候,会把不同的编码转成为通用的UniCode编码,Unicode编码规则是每个字符采用2字节或4字节进行编码,基本包括了世界上所有字符的编码。

为了支持中文显示,先要下载中文字库包,解压后拷贝fonts/chinese和fonts/truetype到你的代码生成可执行文件的哪个目录下。
1)修改config文件如下:
HAVE-HZK-SUPPORT = Y
HZK-FONT-DIR = "/fonts/chinese"

HAVE_GB2312_SUPPORT      = Y

2)修改应用程序,住输出中文的前后,加入如下语句:
GR_GC_ID gc;
GR_FONT_ID font;

 gc = GrNewGC();
 font = GrCreateFont("HZKFONT", 12, NULL);
   
 GrSetGCFont(gc, font);

.....
// 这里调用DrawTextO进行输出,
.....
GrDestroyGC(gc);
GrFlush();

现在就可以显示中文字体了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值