/*********************************************************************
文本模式选择,文本位置
/*********************************************************************
*
-
MainTask
*/
#include "GUI.h"
void MainTask(void) {
GUI_Init();
GUI_SetFont(&GUI_Font8x16);//设置当前字体
GUI_SetBkColor(GUI_BLUE);//设置背景颜色
GUI_Clear();//清除当前窗口
GUI_SetPenSize(10);//设置画笔大小
GUI_SetColor(GUI_RED);//设置当前前景色,为红色。
GUI_DrawLine(320, 10, 480, 90);
//在当前窗口中绘制从某个指定起点到某个指定终点之间的线 (绝对坐标)
GUI_DrawLine(320, 90, 480, 10);
GUI_SetBkColor(GUI_BLACK); //设置当前背景色,为黑色。
//GUI_Clear();
GUI_SetColor(GUI_WHITE);//设置当前前景色,为白色。
/*
当前背景颜色为蓝色,虽然设置了黑色背景,但是黑色背景没有完全生效,
前景颜色为白色,正常模式下。字体的颜色为白色,背景是黑色
*/
GUI_SetTextMode(GUI_TM_NORMAL);
//设置为显示正常文本。这是默认设置,该数值等同于 0。字体颜色为前景颜色
GUI_DispStringHCenterAt("GUI_TM_NORMAL", 400, 10);
//在当前窗口的指定位置处,使用当前字体水平居中显示作为参数的字符串。
GUI_SetTextMode(GUI_TM_REV);//设置为显示反转文本。字体颜色为背景颜色
GUI_DispStringHCenterAt("GUI_TM_REV", 400, 26);
//设置y轴为26的原因:字体是8x16,如果不设置为26的话,会跟上一行冲突
GUI_SetTextMode(GUI_TM_TRANS);//设置为显示透明文本。没有背景颜色
GUI_DispStringHCenterAt("GUI_TM_TRANS", 400, 42);
GUI_SetTextMode(GUI_TM_XOR);//设置为反相显示的文本。
GUI_DispStringHCenterAt("GUI_TM_XOR", 400, 58);
GUI_SetTextMode(GUI_TM_TRANS | GUI_TM_REV);
GUI_DispStringHCenterAt("GUI_TM_TRANS | GUI_TM_REV", 400, 74);
while (1);
}
仿真效果:
总结:显示文本步骤
1. GUI_Init();
2.设置背景色,前景色
GUI_SetBkColor(GUI_BLACK); //设置当前背景色,为黑色。
//GUI_Clear();
GUI_SetColor(GUI_WHITE);//设置当前前景色,为白色。
3.调用文本显示函数(这里的函数只能正常显示英文)
GUI_DispStringHCenterAt("GUI_TM_NORMAL", 400, 10);
//在当前窗口的指定位置处,使用当前字体水平居中显示作为参数的字符串。
//x轴为400,y轴为10
3.1重要的文本显示函数
3.1.1GUI_DispCharAt()
在当前窗口的指定位置处,使用当前字体显示单个字符。
void GUI_DispCharAt(U16 c, I16P x, I16P y);
3.1.2 GUI_DispStringAt()
在当前窗口的指定位置处,使用当前字体显示作为参数的字符串。
void GUI_DispStringAt(const char GUI_FAR * s, int x, int y);
3.1.3GUI_DispStringAtCEOL();重要
该例程使用的参数与 GUI_DispStringAt() 完全相同。它也执行同样的操作:在指定的位置显示所给出的字符串。但是,完成此操作后,它会调用 GUI_DispCEOL() 例程清除本行剩下部分内容直至行末。如果某个字符串要覆盖其他字符串,同时该字符串长度比原先的字符串要短,则使用该例程会很方便。
3.2重要的文本显示模式
正常文本
通过指定 GUI_TEXTMODE_NORMAL 或 0,可以正常显示文本。
反转文本
通过指定GUI_TEXTMODE_REV,可以反转显示文本。通常的黑底白字显示方式将变为白底黑字显示。
透明文本
通过指定 GUI_TEXTMODE_TRANS,可以显示为透明文本。透明文本表示文本写在屏幕上已经可见的内容之上。不同之处在于,屏幕上原有的内容仍然可见,而在正常文本中,背景会替换为当前选择的背景色。
异或文本
通过指定 GUI_TEXTMODE_XOR,可以使用异或模式显示文本。通常情况下,用白色绘制的 (实际字符)显示是反相的。如果背景色是黑色,效果与默认模式 (正常文本)是一样的。如果背景是白色,输出与反转文本一样。如果使用彩色,反相的像素由下式计算:新像素颜色 = 颜色的值 – 实际像素颜色 –1。
透明反转文本
通过指定 GUI_TEXTMODE_TRANS | GUI_TEXTMODE_REV,可以显示为透明反转文本。与透明文本一样,它不会覆盖背景,而且和反转文本一样,该文本会反转显示。
3.2.1GUI_SetTextMode()
描述:按照指定的参数设置文本模式
int GUI_SetTextMode(int TextMode);