硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8296|回复: 6
收起左侧

[emWin] emwin的xbf字体使用

[复制链接]

7

主题

33

回帖

17

积分

新手上路

积分
17
发表于 2013-12-10 11:24:12 | 显示全部楼层 |阅读模式
eric老师,sd卡xbf字库我卡在了一个地方,
例程的移植是成功了,可是中文没有办法显示,而且我不知道应该什么时候关闭字库文件,而且要如何用在空间上,(在我把BUTTON_SetDefaultFont这些设置成xbf的时候,无法显示文字),还有我网上下的全功能fontcvt似乎不能用,都是乱码的,只好拿别人现成的用,请问有地方能搞到可以用的么?

这是我用fatfs移植xbf的文件

#include "GUI.h"
#include "ff.h"
GUI_FONT     XBFFont;
GUI_XBF_DATA XBF_Data;
static int _cbGetData(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer) {
    FIL fsrc;        // ֨ӥτݾәط`
    FRESULT res;  // ֨ӥәطޡڻҤ
    UINT br;
    char string[30];
  fsrc = *(FIL *)pVoid;

  /* Set file pointer to the requested position */
    res = f_lseek(&fsrc,Off); //֒ս˗ַ֘  
    if (res != FR_OK) {
    return 1; /* Error */
  }
    res=f_read(&fsrc,pBuffer,NumBytes,&br);
//    pBuffer=string;
//    res=f_read(&fsrc,pBuffer,NumBytes,&br);
//    pBuffer=&string;
    if (res != FR_OK) {
    return 1; /* Error */
  }
//  /* Read font data */
//  if (!ReadFile(hFile, pBuffer, NumBytes, &NumBytesRead, 0)) {
//    return 1; /* Error */
//  }
  if (br != NumBytes) {
    return 1; /* Error */
  }
  return 0; /* Ok */
}

void readFontfromXBFSD(void){
    FIL fsrc;        // ֨ӥτݾәط`
    FRESULT res;  // ֨ӥәطޡڻҤ
    res = f_open(&fsrc, "0:/sys/NEW12.xbf", FA_OPEN_EXISTING | FA_READ);
  GUI_XBF_CreateFont(&XBFFont,             /* Pointer to GUI_FONT structure in RAM */
                     &XBF_Data,         /* Pointer to GUI_XBF_DATA structure in RAM */
                     GUI_XBF_TYPE_PROP, /* Font type to be created */
                     _cbGetData,        /* Pointer to callback function */
                     &fsrc);            /* Pointer to be passed to GetData function */
//GUI_SetFont(&XBFFont);
//GUI_DispStringAt("Hello world!中文", 160, 80);
//GUI_Clear();
//res = f_close(&fsrc); //ژҕؖͥ
}

GUI_DispStringAt("Hello world!中文", 160, 80);的时候,中文没办法显示出来
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2013-12-10 11:28:38 | 显示全部楼层
我也正在研究,有时候只能显示个字符,关键就是unicode和GB码的转换。
回复

使用道具 举报

7

主题

33

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 2013-12-10 11:57:17 | 显示全部楼层
码不是问题,我用ucgui里面的GUI_UC_EncodeUTF8文件里面的函数,代替EncodeNone里面的,可以获得正确的UTF8码,可是显示非ascii的时候就是没有办法
顺便问一下老师有可以用的fontcvt么
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2013-12-10 15:49:39 | 显示全部楼层

回 jimmjimm 的帖子

jimmjimm:码不是问题,我用ucgui里面的GUI_UC_EncodeUTF8文件里面的函数,代替EncodeNone里面的,可以获得正确的UTF8码,可是显示非ascii的时候就是没有办法
顺便问一下老师有可以用的fontcvt么

 (2013-12-10 11:57) 
看这个帖子:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1580
回复

使用道具 举报

7

主题

33

回帖

17

积分

新手上路

积分
17
 楼主| 发表于 2013-12-10 17:41:13 | 显示全部楼层

回 eric2013 的帖子

eric2013:看这个帖子:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1580 (2013-12-10 15:49) 
这个我当然看过了,文件设置成UTF8也设置了,可是只要一显示非ASCII(EASCII的都可以)的文字就不对,看了下文字的UTF8都是正确(因为我选择改EncodeNone而不是使用set_encodeutf8 所以能看到文字的getcharcode最后返回的值)
回复

使用道具 举报

2

主题

16

回帖

2

积分

新手上路

积分
2
发表于 2016-6-28 17:06:30 | 显示全部楼层
楼主请问问题解决了没有?
我现在也遇到了这个问题
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-7-1 07:19:43 | 显示全部楼层

回 zhangjie 的帖子

zhangjie:楼主请问问题解决了没有?
我现在也遇到了这个问题  (2016-06-28 17:06) 
估计是你的UTF-8编码没有设置。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 08:47 , Processed in 0.037711 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表