请教:RT-GUI中如何支持汉字呢,需要定义那些常量,需要那几个文件。比如label控件的标题
请教:RT-GUI中如何支持汉字呢,需要定义那些常量,需要那几个文件。比如label控件的标题是汉字?如果测试的话,最后肯定涉及到汉字的显示!
我现在使用的是radio项目中的rtconfig.h文件。
已经含有:
#define RTGUI_USING_HZ_FILE
#define RTGUI_DEFAULT_FONT_SIZE16
工程中已经包含了以下几个与文字相关的文件:
asc12font.c
asc16font.c
font_hz_file.c
hz16font.c
hz12font.c
arial12font.c
arial16font.c
现在label控件的汉子显示是乱码!
谢谢各位! #define RTGUI_USING_HZ_FILE
这个定义会让RT-Thread/GUI使用点阵汉字文件
如果定义
#define RTGUI_USING_HZ_BMP
会使用点阵汉字的数组,占用ROM会比较大。
相配套的文档会尽快出来,写文档需要时间。。。 谢谢ffxx,但是rtconfig.h之中,我已经定义了#define RTGUI_USING_HZ_FILE
控件显示的汉字还是乱码?是不是还有其它的要求呢? 回复【2楼】neilxiang
谢谢ffxx,但是rtconfig.h之中,我已经定义了#define RTGUI_USING_HZ_FILE
控件显示的汉字还是乱码?是不是还有其它的要求呢?
-----------------------------------------------------------------------
回复【1楼】ffxz
#define RTGUI_USING_HZ_FILE
这个定义会让RT-Thread/GUI使用点阵汉字文件
-----------------------------------------------------------------------
上面的回复已经说明了,如果定义RTGUI_USING_HZ_FILE,那么使用点阵汉字文件。
点阵汉字文件必须放在/resource目录下,然后RT-Thread/GUI会自动去读取并实现一定的汉字信息缓存以加速下一次的汉字显示 /resource 我是拷贝raido项目中的,但是现在显示还是乱码?
我用VS2005测试代码运行正常,所以可能还是有别的要求,烦请ffxx指点!谢谢! 说说你的具体环境、具体配置吧 具体配置是这样的:
/* RT-Thread config file */
#ifndef __RTTHREAD_CFG_H__
#define __RTTHREAD_CFG_H__
/* RT_NAME_MAX*/
#define RT_NAME_MAX 8
/* RT_ALIGN_SIZE*/
#define RT_ALIGN_SIZE 4
/* PRIORITY_MAX*/
#define RT_THREAD_PRIORITY_MAX 32
/* Tick per Second*/
#define RT_TICK_PER_SECOND 100
/* SECTION: RT_DEBUG */
/* Thread Debug*/
#define RT_DEBUG
/* #define RT_THREAD_DEBUG */
#define RT_USING_OVERFLOW_CHECK
/* Using Hook*/
#define RT_USING_HOOK
/* SECTION: IPC */
/* Using Semaphore*/
#define RT_USING_SEMAPHORE
/* Using Mutex*/
#define RT_USING_MUTEX
/* Using Event*/
#define RT_USING_EVENT
/* Using MailBox*/
#define RT_USING_MAILBOX
/* Using Message Queue*/
#define RT_USING_MESSAGEQUEUE
/* SECTION: Memory Management */
/* Using Memory Pool Management*/
#define RT_USING_MEMPOOL
/* Using Dynamic Heap Management*/
#define RT_USING_HEAP
/* Using Small MM*/
#define RT_USING_SMALL_MEM
/* Using SLAB Allocator*/
/* #define RT_USING_SLAB */
/* SECTION: Device System */
/* Using Device System*/
#define RT_USING_DEVICE
#define RT_USING_UART1
// #define RT_USING_UART2
// #define RT_USING_UART3
/* SECTION: Console options */
/* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE 128
/* SECTION: FinSH shell options */
/* Using FinSH as Shell*/
#define RT_USING_FINSH
/* Using symbol table */
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION
#define FINSH_DEVICE_NAME "uart1"
/* SECTION: C++ support */
/* Using C++ support*/
/* #define RT_USING_CPLUSPLUS */
#define RT_USING_DFS
//#define RT_USING_DFS_EFSL
/* byte alignment for EFSL */
#define BYTE_ALIGNMENT
#define RT_USING_DFS_ELMFAT
#define RT_DFS_ELM_WORD_ACCESS
/* SECTION: DFS options */
/* the max number of mounted filesystem */
#define DFS_FILESYSTEMS_MAX 2
/* the max number of opened files */
#define DFS_FD_MAX 64
/* the max number of cached sector */
#define DFS_CACHE_MAX_NUM 4
/* SECTION: lwip, a lighwight TCP/IP protocol stack */
/* Using lighweight TCP/IP protocol stack */
#define RT_USING_LWIP
/* Trace LwIP protocol */
/* #define RT_LWIP_DEBUG */
/* LwIP uses RT-Thread Memory Management */
#define RT_LWIP_USING_RT_MEM
/* Enable ICMP protocol */
#define RT_LWIP_ICMP
/* Enable IGMP protocol */
/* #define RT_LWIP_IGMP */
/* Enable UDP protocol */
#define RT_LWIP_UDP
/* Enable TCP protocol */
#define RT_LWIP_TCP
/* the number of simulatenously active TCP connections */
#define RT_LWIP_TCP_PCB_NUM 100
/* TCP sender buffer space */
#define RT_LWIP_TCP_SND_BUF 2048
/* Enable SNMP protocol */
/* #define RT_LWIP_SNMP */
/* Using DHCP */
//#define RT_LWIP_DHCP
/* Using DNS */
//#define RT_LWIP_DNS//xiang
/* ip address of target */
#define RT_LWIP_IPADDR0 192
#define RT_LWIP_IPADDR1 168
#define RT_LWIP_IPADDR2 1
#define RT_LWIP_IPADDR3 130
/* gateway address of target */
#define RT_LWIP_GWADDR0 192
#define RT_LWIP_GWADDR1 168
#define RT_LWIP_GWADDR2 1
#define RT_LWIP_GWADDR3 1
/* mask address of target */
#define RT_LWIP_MSKADDR0 255
#define RT_LWIP_MSKADDR1 255
#define RT_LWIP_MSKADDR2 255
#define RT_LWIP_MSKADDR3 0
/* tcp thread options */
#define RT_LWIP_TCPTHREAD_PRIORITY 10
#define RT_LWIP_TCPTHREAD_MBOX_SIZE 4
#define RT_LWIP_TCPTHREAD_STACKSIZE 1024
/* ethernet if thread options */
#define RT_LWIP_ETHTHREAD_PRIORITY 12
#define RT_LWIP_ETHTHREAD_MBOX_SIZE 4
#define RT_LWIP_ETHTHREAD_STACKSIZE 512
/* SECTION: RT-Thread/GUI */
#define RT_USING_RTGUI
/* name length of RTGUI object */
#define RTGUI_NAME_MAX 12
/* support 16 weight font */
#define RTGUI_USING_FONT16
/* support Chinese font */
#define RTGUI_USING_FONTHZ
/* use DFS as file interface */
#define RTGUI_USING_DFS_FILERW
/* use font file as Chinese font */
#define RTGUI_USING_HZ_FILE
/* use small size in RTGUI */
#define RTGUI_USING_SMALL_SIZE
/* use mouse cursor */
/* #define RTGUI_USING_MOUSE_CURSOR */
/* default font size in RTGUI */
#define RTGUI_DEFAULT_FONT_SIZE 16
#endif
开发环境是KEL3.5.
开发板是英蓓特公司的STM32103ZE
配置了320*240的屏,驱动器是ILI9325
现在经过测试,控件的绘制正确了。但是显示中文汉字的时候,是乱码.
附加问一下:如果是乱码,是不是LCD.C中绘点函数有问题呢,我觉得这个可能性很小,毕竟英文字符的显示是正确的。
////////////////////////////////////////////////////////////////////////
上面的回复已经说明了,如果定义RTGUI_USING_HZ_FILE,那么使用点阵汉字文件。
点阵汉字文件必须放在/resource目录下,然后RT-Thread/GUI会自动去读取并实现一定的汉字信息缓存以加速下一次的汉字显示
//////////////////////////////////////////////////////////////////////
是将文件放在计算机中的resource之下呢,还是SD卡中呢? 谢谢ffxx,文件应该是放在SD卡之中,现在又碰到一个新的头题,还要麻烦你。
是关于textbox控件使用的问题,我在VS2005中,测试测码,textbox控件的显示是正确的,
但是在下位机的时候,textbox中是示的东西是空的。
textbox=rtgui_textbox_create("textbox");
RTGUI_WIDGET_FOREGROUND(RTGUI_WIDGET(textbox))=red;
rtgui_container_add_child(RTGUI_CONTAINER(main_view),RTGUI_WIDGET(textbox));
rtgui_widget_set_rect(RTGUI_WIDGET(textbox),&rect);
textbox的边框显示出来了,但是没有显示文字!
其它的控件标题显示是正确的,汉字显示也对了。
main_view是创建的一个视图,在其上显示所有的控件。 回去也试试看。
页:
[1]