Win10
新建记事本文件,输入汉字“主菜单”,然后另存为,编码选择UTF-16 LE,如下图:
用STemWin提供的 STemWin_Library_V1.2.0\Libraries\STemWinLibrary532\Software\FontCvtST.exe
默认如红框,OK,
字体、字形、大小根据自己需要选择,unit size选Pixels,
确定后,进入如下界面,依次 Edit - Disabled all......
再依次点 Edit - Read pattern......
选择刚才保存的text文件,
再依次点击 File - Save As....
然后,更改一下文件名Song14.c,保存。然后复制到keil工程目录,
打开keil工程,把song14.c加到项目中,OK,
再 Edit - Configuration...,Encoding选择如图:
比如,dispaly.c用于GUI,某个窗口创建了以标题为“主菜单”的FrameWin,代码如下,
extern GUI_CONST_STORAGE GUI_FONT GUI_Fontsong14; //1、引用song14.c字体
/**************************************
.其他无关代码
***************************************/
GUI_Init();
GUI_UC_SetEncodeUTF8(); //2、加上此句
/**************************************
.其他无关代码
***************************************/
hFramewin = FRAMEWIN_CreateEx(0,0,128,64,hWin,WM_CF_SHOW,0,GUI_ID_FRAMEWIN_01,"MAIN",NULL); //MAIN:not care
FRAMEWIN_SetTextColor(hFramewin, GUI_BLACK);
FRAMEWIN_SetText(hFramewin,"主菜单"); //3、先设置标题
FRAMEWIN_SetFont(hFramewin, &GUI_Fontsong14); //再设置字体,另外注意是FRAMEWIN_SetFont,不是GUI_SetFont
注意:
1、源代码开始时 用extern引用song14.c中的字体 GUI_Fontsong14;
2、GUI_UC_SetEncodeUTF8(); 加到 GUI_init(); 后面;
3、先设置FRAMEWIN的标题,再设置FRAMEWIN的字体,另外设置字体用对应控件的API;
4、把这个带中文字符的c文件用记事本打开,另存为,编码选择“带有 BOM 的 UTF-8”。
编译,运行,只要代码逻辑正确即可显示:
另外,每次修改编译这个带中文的c代码后,需要重新用记事本另存为“带有 BOM 的 UTF-8”,否则编译报错,
结束。