嵌入式GUI学习记录之显示文本。平台:STwmWin

本文档详细介绍了在STwmWin平台上如何显示文本,包括初始化、颜色设置和关键函数GUI_DispCharAt(), GUI_DispStringAt(), GUI_DispStringAtCEOL()的使用。此外,还讲解了GUI_SetTextMode()设置的不同文本显示模式,如正常、反转、透明和异或模式。" 129034571,1510383,华为OD机试题解析:静态扫描最优成本,"['java', '华为od试题', '成本优化', '编程题']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*********************************************************************

文本模式选择,文本位置

/*********************************************************************
*

  •   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);
文本模式

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值