usb000 发表于 2012-10-13 12:15:59

emWin中文显示问题请教!!!

我使用 FontCvt V5.16 来取中文字模,取得内容如下:

#include "GUI.h"

#ifndef GUI_CONST_STORAGE
#define GUI_CONST_STORAGE const
#endif

/* The following line needs to be included in any file selecting the
   font.
*/
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontfont_song_20;

/* Start of unicode area <Basic Latin> */
GUI_CONST_STORAGE unsigned char acGUI_Fontfont_song_20_0030[ 11] = { /* code 0030, DIGIT ZERO */
__XX____,
_X__X___,
X____X__,
X____X__,
X____X__,
X____X__,
X____X__,
X____X__,
X____X__,
_X__X___,
__XX____};

/* Start of unicode area <CJK Unified Ideographs> */
GUI_CONST_STORAGE unsigned char acGUI_Fontfont_song_20_5386[ 28] = { /* code 5386 */
__XXXXXX,XXXXXXX_,
__X_____,________,
__X_____,X_______,
__X_____,X_______,
__X_XXXX,XXXXX___,
__X_____,X___X___,
__X_____,X___X___,
__X_____,X___X___,
__X____X,____X___,
__X____X,____X___,
__X___X_,____X___,
_X____X_,____X___,
_X___X__,__XXX___,
X___X___,___X____};

GUI_CONST_STORAGE GUI_CHARINFO_EXT GUI_Fontfont_song_20_CharInfo = {
   {   6,11,   1,   3,   8, acGUI_Fontfont_song_20_0030 } /* code 0030, DIGIT ZERO */
,{15,14,   0,   1,16, acGUI_Fontfont_song_20_5386 } /* code 5386 */
};

GUI_CONST_STORAGE GUI_FONT_PROP_EXT GUI_Fontfont_song_20_Prop2 = {
   0x5386 /* first character */
,0x5386 /* last character*/
,&GUI_Fontfont_song_20_CharInfo /* address of first character */
,(GUI_CONST_STORAGE GUI_FONT_PROP_EXT *)0 /* pointer to next GUI_FONT_PROP_EXT */
};

GUI_CONST_STORAGE GUI_FONT_PROP_EXT GUI_Fontfont_song_20_Prop1 = {
   0x0030 /* first character */
,0x0030 /* last character*/
,&GUI_Fontfont_song_20_CharInfo /* address of first character */
,&GUI_Fontfont_song_20_Prop2 /* pointer to next GUI_FONT_PROP_EXT */
};

GUI_CONST_STORAGE GUI_FONT GUI_Fontfont_song_20 = {
   GUI_FONTTYPE_PROP_EXT /* type of font    */
,16 /* height of font*/
,16 /* space of font y */
,1 /* magnification x */
,1 /* magnification y */
,{&GUI_Fontfont_song_20_Prop1}
,14 /* Baseline */
,7 /* Height of lowercase characters */
,11 /* Height of capital characters */
};

显示程序是对一个按键里面的文字进行显示

static void _initDialog( WM_MESSAGE *pMsg )
{
        char text = "      ";
       
        WM_HWIN hWin = pMsg->hWin;
        BUTTON_Handle hObj;
       
        hObj = WM_GetDialogItem( hWin, GUI_ID_BUTTON0 );
       
        text = 0x30;
        text = 0x30;
       
        text = 0x53;
        text = 0x86;
       
        BUTTON_SetFont( hObj, &GUI_Fontfont_song_20 );
        BUTTON_SetText( hObj, text );
       
}

理论上显示“00历”,但是只能显示“00”,中文的“历”不管怎么取模都显示不出来。
有人知道为什么吗?

shentqlf 发表于 2013-7-2 00:57:27

FontCvt V5.16 上传一个呗

xyz543 发表于 2013-7-2 10:17:55

本帖最后由 xyz543 于 2013-7-2 10:23 编辑

我估计楼主您用得是 Font Converter Demo Version 的版本,这 Demo 版有限制取字而会产生不正确的 Font 的字型,如下图:



而正式版就没有这个问题了,我估计楼主可能是遇到这个原因吧?! {:smile:}



编辑原因: 修正错别字!

fisherman2004 发表于 2013-7-2 12:30:31

两种可能 一种是字库问题 二是用的代码编辑器问题,如果用的是其他代码编辑器,需要注意。

zhoujunming27 发表于 2013-7-9 18:00:24

如3楼所描述,可能是由于你使用的Font Converter 是Demo Version 的版本,我用的Demo Version 的版本直接就不能产生汉字字库。{:mad:}

xyz543 发表于 2013-7-10 12:09:14

zhoujunming27 发表于 2013-7-9 18:00 static/image/common/back.gif
如3楼所描述,可能是由于你使用的Font Converter 是Demo Version 的版本,我用的Demo Version 的版本直接就 ...

您可以到这-> ~~求emWin的FontConvert全功能版软件~~ 的 4 楼下载附件... {:smile:}

zhoujunming27 发表于 2013-7-10 14:23:23

xyz543 发表于 2013-7-10 12:09 static/image/common/back.gif
您可以到这-> ~~求emWin的FontConvert全功能版软件~~ 的 4 楼下载附件...

谢谢,已经下载了,可以使用。非常感谢!
页: [1]
查看完整版本: emWin中文显示问题请教!!!