用Microwindows(Nano-X)編寫中文程序

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.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章