上次看了其他人的教程,直接用GUIBUILDER工具生成界面来仿真,其实也可以直接用代码来制作那些东西的,用那个工具的话更容易,这文本显示可以说和上面没有多大关系,像是从头来过的。就和我们写main函数一样写就好了,之前我花了太多时间去找怎么学习那个图形编程关于怎么切换的,一步一步来,那些可以先不用找
第一步:我们还是打开那个DEMO例程,主界面还是那样的,我们就改Maintask函数里的内容就好,如:
关于文本显示,我们就直接调用库里面的函数就好了,我调用了一个emwin_textst函数,这个函数呢,自己写的。先新建一个C文件,然后添加进工程,放在Application那个文件夹下面。需要头文件GUI_DEMO.H
比如我们需要在那个界面里写一个hello world,就直接调用API函数,GUI_DispString(“HELLO WORD!”);效果如图:
关于文本显示,里面还有很多API函数,可以看API函数手册,上面有具体说明。要做复杂一点,就自己去调用更多函数写一些文本,还有画线什么的都可以,很是强大。
这是手册里的例程代码:
GUI_DispString("HELLO WORD!");
int i;
char acText[] = "This example demostrates text wrapping"; //定义字符串
GUI_RECT Rect = { 200, 240, 259, 299 }; //定义矩形显示区域
GUI_WRAPMODE aWm[] = { GUI_WRAPMODE_NONE,GUI_WRAPMODE_CHAR,GUI_WRAPMODE_WORD };
//一个数组,GUI_DispStringInRectWrap这个函数里,创立的显示框框内的字符排列方式
GUI_SetBkColor(GUI_BLUE); //设置背景颜色
GUI_Clear(); //清屏
GUI_SetFont(&GUI_Font24_ASCII); //设置字体
GUI_SetColor(GUI_YELLOW); //设置前景色(如文本,画线等颜色)
GUI_DispString("HELLO WORD!");
GUI_SetFont(&GUI_Font8x16); //设置字体
GUI_SetPenSize(10); //设置笔大小
GUI_SetColor(GUI_RED); //红色字体
GUI_SetBkColor(GUI_BLACK); //设置黑色背景
GUI_SetColor(GUI_WHITE); //设置字体颜色为白色
GUI_SetTextMode(GUI_TM_NORMAL); //正常模式
GUI_DispStringHCenterAt("GUI_TM_NORMAL", 400, 50); //字符串,横坐标,纵坐标,以下一样
GUI_SetTextMode(GUI_TM_REV); //反转文本
GUI_DispStringHCenterAt("GUI_TM_REV", 400, 66);
GUI_SetTextMode(GUI_TM_TRANS); //透明文本
GUI_DispStringHCenterAt("GUI_TM_TRANS", 400, 82);
for (i = 0; i<3; i++)
{
GUI_SetColor(GUI_WHITE);
GUI_FillRectEx(&Rect);
GUI_SetColor(GUI_BLACK);
GUI_DispStringInRectWrap(acText, &Rect, GUI_TA_LEFT, aWm[i]);//在当前窗口指定的矩形区域内显示字符串(并可自动换行)
Rect.x0 += 70;
Rect.x1 += 70;
}
显示效果如下: