|
发表于 2011-3-18 20:28:36
|
显示全部楼层
很久没上ID了。
目前的RTGUI在小屏幕上更有优势,主要是设置之初没有考虑大屏幕的场合。
以后RTGUI会考虑出个大屏幕的版本吧,这个版本尽量使用PC上编程的特性,
这样会大大提高开发效率。下面我贴出在800*600的屏幕上使用RTGUI的效果。
首先要写一个抓屏函数,来抓屏。
#ifdef RT_USING_FINSH
#include <finsh.h>
void print_screen(char *name)
{/* 抓取屏幕,保存为HDC格式 */
#include <dfs_def.h>
#include <dfs_file.h>
const struct rtgui_graphic_driver *gd = rtgui_graphic_driver_get_default();
struct rtgui_filerw* file;
rt_uint8_t *buf;
struct hdcSt
{/* HDC图片格式的文件头 */
char magic[4];
rt_uint32_t width;
rt_uint32_t height;
rt_uint32_t res1;
rt_uint32_t res2;
};
struct hdcSt hdcHeader;
hdcHeader.magic[0] = 'H';
hdcHeader.magic[0] = 'D';
hdcHeader.magic[0] = 'C';
hdcHeader.magic[0] = 0x00;
hdcHeader.width = gd->width;
hdcHeader.height= gd->height;
hdcHeader.res1 = 0;
hdcHeader.res2 = 0;
buf = (rt_uint8_t*)&hdcHeader;
file = rtgui_filerw_create_file(name, "w");
if(file == RT_NULL) return;
rtgui_filerw_write(file, buf, sizeof(hdcHeader), 1);
buf = (rt_uint8_t*)gd->get_framebuffer;
rtgui_filerw_write(file, buf, 600*800*2, 1);
rtgui_filerw_close(file);
rt_kprintf("Print Screen Succ!\n");
}
FINSH_FUNCTION_EXPORT(print_screen, print screen);;
#endif
这个函数在大部分使用FrameBuffer的平台上一般都能跑起来,用非内视shell调用即可.
如果你的系统中有SD卡,那么很方便编辑这些图片了,就像我这样:
使用hdc-conversion工具查看HDC格式的图片(RT-Thread系统) (原文件名:bmp1.JPG)
嗯,这些节目的效果怎么看都像PC上的GUI,其实这些都是RTGUI的效果
RTGUI的一个文件管理窗口 (原文件名:bmp2.JPG)
RTGUI的控件一直在持续完善之中。
RTGUI中的组合框控件效果 (原文件名:bmp3.JPG)
非内视下看看
finsh />list_win()
window'name thread'name modal window'id
---------------- ---------------- ---------------- ----------
New File NewDlg MODAL_OK 0x307210a8
test Panel MODAL_CANCEL 0x30720de8
test Panel MODAL_CANCEL 0x30720b28
test Panel MODAL_CANCEL 0x30720a78
test Panel MODAL_CANCEL 0x30720918
test Panel MODAL_CANCEL 0x30720bd8
test Panel MODAL_CANCEL 0x30720c88
test Panel MODAL_CANCEL 0x30720f48
test Panel MODAL_CANCEL 0x30720e98
test Panel MODAL_CANCEL 0x30720d38
test Panel MODAL_CANCEL 0x307209c8
test Panel MODAL_CANCEL 0x30720868
test Panel MODAL_CANCEL 0x307207b8
0, 0x00000000
RTGUI中打开多个窗口的效果,焦点窗口是模式窗口 (原文件名:bmp4.JPG)
RTGUI中的复选框效果 (原文件名:bmp5.JPG)
以后会支持更加复杂强大的控件,向PC上的GUI靠拢
RTGUI中的编辑框效果 (原文件名:bmp7.JPG) |
|