用Microwindows(Nano-X)编写中文程序

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CBB0136%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CBB0136%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">

Microwindows(Nano-X)编写中文程序

By:

吴垠

Date:

2008-06-24

Homepage:

http://blog.csdn.net/wooin

Email:

lazy.fox.wu#gmail.com

Copyright

该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行为需经作者同意。

Link:

 http://blog.csdn.net/wooin/archive/2008/06/24/2583144.aspx


1.

从代码中留下的蛛丝马迹可以看出来Microwindows在开发时有中国人的参 与,并且完成了支持中文的字体引擎开发,所以今天的Microwindows才可以显示中文。
需要说明的是,Microwindows支持的中文字符集是GB2312,并不是Unicode,所以在开发Microwindows中文程序时要使用 GB2312的字符集,这应该算是一个缺陷吧。
下面我就来介绍如何编写中文的Microwindows程序:

 

 

2.

首选要下载microwindows的字体文件:microwindows- fonts-0.90.tar.gz可以在Microwindows的 ftp上找到。下载到该文件后,假设你的microwindows源码目录是类似于这样的一个目录:
NANOX=/home/bbw/microwindows-0.90

microwindows-fonts-0.90.tar.gz
解压后将“fonts/”文件夹中的内容都拷贝到“$(NANOX) /src/fonts/”文件夹中

 

 

3.

修改文件:

修 改文件“$(NANOX)/src/config”文件第197198行:

HAVE_HZK_SUPPORT        = N
HZK_FONT_DIR             = "fonts/chinese"
改为:
HAVE_HZK_SUPPORT        = Y
HZK_FONT_DIR             = "/home/bbw/microwindows-0.90/src/fonts/chinese"

启用汉字支持功能,并且设置字体文件的路径。

4.

接下来就要开始编写中文程序了:

 

我们接着上一篇文章《用Microwindows (Nano-X)编写“hello world”中程序做,对这个程序之用做几处修改就好 了,下面是程序的完整源代码,你可以参照着上一篇文章看看我做了哪些修改:

 

 1 /***************************************************************************
 2  *  Filename    : hello.c
 3  *  Begin       : 2008-05-09 16:24:44
 4  *  Project     : Hello Nano-X World
 5  *  Version     : 1.1
 6  *  Copyright   : GPL v2.0
 7  *  Author      : Wu Yin (
吴垠)
 8  *  Description :
 9  *  Email       : lazy.fox.wu#gmail.com
10  **************************************************************************/
11 #include <stdio.h>
12 #include "nano-X.h"
13 #include "nxcolors.h"
14
15 int main()
16 {
17     GR_WINDOW_ID root_wid, wid;
18     GR_GC_ID gc;
19     GR_COORD x, y;
20     GR_SIZE width, height;
21     GR_EVENT event;
22     GR_FONT_ID fid;
23
24     x = 0;
25     y = 0;
26     width = 640;
27     height = 480;
28
29     if (GrOpen() < 0)
30     {
31         printf("Can't open graphics/n");
32         return 0;
33     }
34
35     gc = GrNewGC();
36     fid = GrCreateFont("HZKFONT", 16, NULL);
37     //
创建父窗口(根窗口)
38     root_wid = GrNewWindow(GR_ROOT_WINDOW_ID, x, y, width, height,
39             1, GR_COLOR_ROYALBLUE, GR_COLOR_BLACK);
40     //
创建一个子窗口
41     wid=GrNewWindow(root_wid,60,60,200,60,1,GR_COLOR_BLACK,GR_COLOR_WHITE);
42     GrMapWindow(root_wid);  //
绘制父窗口
43     GrMapWindow(wid);       //
绘制子窗口
44
45     //
显示在父窗口中的文字
46     GrSetGCForeground(gc, GR_COLOR_RED);   //
前景色(字体颜色)
47     GrSetGCBackground(gc, GR_COLOR_GREEN); //
背景色(字体背景颜色)
48     GrSetGCFont(gc, fid);
49     GrText(root_wid, gc, 10, 20, "
你好 in root_wid", -1, GR_TFBOTTOM);
50
51     //
显示在子窗口中的文字
52     GrSetGCForeground(gc, GR_COLOR_RED);   //
前景色(字体颜色)
53     GrSetGCBackground(gc, GR_COLOR_GREEN); //
背景色(字体背景颜色)
54     GrText(wid, gc, 10, 20, "
你好 in wid", -1, GR_TFBOTTOM);
55
56     for (;;)
57     {
58         GrGetNextEvent(&event);
59     }
60     GrClose();
61
62     return 1;
63 }
64


这里要注意了:
前 面我说过Microwindows支持的中文字符集是GB2312,所以并不是你在程序中输入的中文它都可以显示,这时你要保证你你的hello.c文件 的编码是GB2312,或者是GB18030,或者是GBK的,但是现在大多数比较新的Linux发行版都用的是Unicode了,所以这就比较麻烦了, 好在现在很多编辑器都支持GB18030编码的支持,你可以在这些编辑器中再编辑hello.c文件。geditkwritekate都还支持 GB18030编码。这时你就要用这工具设置成GB18030编码,然或再编辑我上面的那个hello.c文件,祝你成功。

5.

源文件编写好后,Makfile不用做任何修改,直接运行make编译就好了,如果没有意外的话,在projects文件夹中应该会 重新生成一个“hello”可执行文件,执行它,就可以看到下面这个界面了,是不是看到了中文^_^

 

2

7.

 


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值