历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2020年10月14日 | 为OLED屏增加GUI支持4:文本框控件

2020-10-14 来源:eefocus

环境:


主机:WIN10


开发环境:MDK5.13


MCU:STM32F103


说明:

本文定义了文本框控件。在gui中增加了字库支持后,就可以用文本框来显示字符。


源代码:


gui_widget_text.h


/**

* Copyright (c), 2015-2025

* @file gui_widget_text.h

* @brief 文本控件头文件

* @author jdh

* @date 2015/9/8

*/

 

#ifndef _GUI_WIDGET_TEXT_H_

#define _GUI_WIDGET_TEXT_H_

 

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

* 头文件

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

 

#include "gui_interface.h"

 

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

* 宏定义

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

 

/**

* @brief 文本长度.单位:字节

*/

 

#define LEN_WIDGET_TEXT 32

 

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

* 数据结构

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

 

/**

* @brief 文本框数据结构

*/

 

typedef struct _Widget_Text

{

//x轴位置

uint16_t x;

//y轴位置

uint16_t y;

//水平尺寸

uint16_t xsize;

//垂直尺寸

uint16_t ysize;

//字体

uint8_t font;

//文本

char s[LEN_WIDGET_TEXT];

}*Widget_Text_Handle;

 

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

* 函数

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

 

/**

* @brief 创建控件text

* @param x:左上角x坐标

* @param y:左上角y坐标

* @param xsize:水平尺寸

* @param ysize:垂直尺寸

* @param font:字体

* @param s:文本

* @retval 控件句柄

*/

 

Widget_Text_Handle gui_widget_text_create(uint16_t x,uint16_t y,uint16_t xsize,uint16_t ysize,uint8_t font,char *s);

 

/**

* @brief 设置文本

* @param s:文本

*/

 

void gui_widget_text_set_text(Widget_Text_Handle handle,uint8_t font,char *s);

 

#endif

 

 


gui_widget_text.c



/**

* Copyright (c), 2015-2025

* @file gui_widget_text.c

* @brief 文本控件主文件

* @author jdh

* @date 2015/9/8

*/

 

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

* 头文件

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

 

#include "gui_widget_text.h"

#include "gui_2d_lib.h"

#include "gui_text_lib.h"

#include "stdlib.h"

#include "string.h"

 

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

* 静态函数

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

 

/**

* @brief 控件显示

* @param handle:控件句柄

*/

 

static void show(Widget_Text_Handle handle);

 

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

* 函数

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

 

/**

* @brief 创建控件text

* @param x:左上角x坐标

* @param y:左上角y坐标

* @param xsize:水平尺寸

* @param ysize:垂直尺寸

* @param font:字体

* @param s:文本

* @retval 控件句柄

*/

 

Widget_Text_Handle gui_widget_text_create(uint16_t x,uint16_t y,uint16_t xsize,uint16_t ysize,uint8_t font,char *s)

{

Widget_Text_Handle handle;

//控件初始化

handle = malloc(sizeof(*handle));

handle->x = x;

handle->y = y;

handle->xsize = xsize;

handle->ysize = ysize;

handle->font = font;

strcpy(handle->s,s);

//显示

show(handle);

return handle;

}

 

/**

* @brief 设置文本

* @param s:文本

*/

 

void gui_widget_text_set_text(Widget_Text_Handle handle,uint8_t font,char *s)

{

handle->font = font;

strcpy(handle->s,s);

//显示

show(handle);

}

 

/**

* @brief 控件显示

* @param handle:控件句柄

*/

 

static void show(Widget_Text_Handle handle)

{

//清除区域

gui_fill_rect(handle->x,handle->y,handle->x + handle->xsize,handle->y + handle->ysize,0);

//显示

gui_disp_string_at(handle->x,handle->y,handle->font,handle->s);

}


使用示例:


Widget_Text_Handle Widget_Text_State;

Widget_Text_State = gui_widget_text_create(93,40,30,20,GB18030_20X20,"正常");

推荐阅读

史海拾趣

康龙(CONCRAFT)公司的发展小趣事

作为一家有社会责任感的企业,康龙公司始终关注环境保护和可持续发展。公司积极采用环保材料和生产工艺,减少生产过程中的污染和浪费。同时,康龙还积极参与社会公益事业和慈善活动,回馈社会。这些举措不仅提升了公司的品牌形象和社会声誉,也为公司的长远发展注入了正能量。

格科微电子(GALAXYCORE)公司的发展小趣事

面对电子行业的快速变化和发展趋势,康龙公司积极拥抱数字化转型。公司引入了先进的ERP系统和数字化工具,实现了从供应链、生产管理到财务管理的全面信息化。这不仅提高了公司的运营效率和管理水平,还为公司的产业升级和未来发展奠定了坚实基础。

Headland Technology Product Group公司的发展小趣事

HBControls的创立可以追溯到上世纪90年代初,当时电子工业正处于快速发展阶段。创始人李明(化名)凭借在电子行业多年的工作经验,敏锐地察觉到继电器市场的巨大潜力。然而,初创时期资金短缺、技术瓶颈和市场认可度低成为了摆在他面前的三座大山。李明带领团队夜以继日地研发产品,不断优化性能,同时积极寻找合作伙伴,逐步打开了市场。经过数年的不懈努力,HBControls终于在继电器领域站稳了脚跟。

GeneSiC Semiconductor公司的发展小趣事

进入21世纪后,随着电子技术的飞速发展,HBControls意识到只有不断创新才能保持竞争力。公司加大了研发投入,成立了专门的研发团队,专注于新型继电器产品的研发。经过多次试验和改进,HBControls成功推出了HD-4850系列高性能继电器,该系列产品以其高可靠性、长寿命和低功耗等特点迅速赢得了市场的青睐。这一创新不仅提升了公司的市场份额,也进一步巩固了HBControls在继电器领域的领先地位。

Hi-Optel Technologly Co Ltd公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的基石。HBControls深知这一点,因此始终将品质管理放在首位。公司建立了完善的质量管理体系,从原材料采购、生产加工到成品检验,每一个环节都严格把关。此外,HBControls还定期对员工进行质量意识培训,确保每一位员工都能将品质理念融入到日常工作中。正是凭借卓越的产品质量和优质的服务,HBControls赢得了众多客户的信赖和好评。

Amphenol Thermometrics公司的发展小趣事

随着全球经济的一体化,HBControls开始实施全球化战略,以拓展更广阔的市场空间。公司首先在欧洲设立了分支机构,随后又在美国、亚洲等地建立了销售网络。通过参加国际展会、与当地企业建立合作关系等方式,HBControls的产品逐渐走向全球。同时,公司还积极引进国际先进的管理理念和技术,不断提升自身的综合竞争力。全球化战略的实施为HBControls带来了更多的市场机遇和发展空间。

问答坊 | AI 解惑

关于2008年江苏省大学生电子设计竞赛

本帖最后由 paulhyde 于 2014-9-15 09:44 编辑 1. 竞赛报名 1) 参赛对象:江苏省内所有设置电类专业的高校(包括本科和高职高专)在籍学生; 2) 竞赛组织:由各参赛学校指定竞赛负责人和领队统一负责本校参赛队的组队、报名、竞赛和送审工 ...…

查看全部问答>

漫漫职场路,痛并快乐着是一种收获

作者:华清远见嵌入式学院 不记得是什么时候了,曾经看过一篇文章,里面有一句话:“痛并快乐着”让我印象非常深刻,在刚看到这句话的那一刻,自己颇有些感同身受的共鸣。回想一下:从学生到技术人的成长过程是痛并快乐着的、跟团队一起进行项目研 ...…

查看全部问答>

射频/微波电路中的薄膜无源器件

就在不久之前,大多数微波电容器还都基于多层陶瓷烧制技术。在生产过程中,多层高导电性的金属合金电极层和低损耗的陶瓷绝缘层交错排列,从而得到所需要的电容值。然后,将合成的叠层进行高温烧制,将其烧结成单片结构。这一工艺目前仍然很好地满足 ...…

查看全部问答>

程序多跑一次

程序如下: while (1)   {          /* Loop forever */       if ( UART0Count != 0 )       {            U0 ...…

查看全部问答>

请问PC104+的主板兼容PC104设备吗?

比如一张PC104的IO卡插在PC104+的ISA上应该能使用吧?…

查看全部问答>

如何将网上订单发送到GPRS接收终端并直接打印?

各位大侠:     小弟有一事求教:我有一个网上购物的网站,要做一个应用,就是把用户在网上下的订单直接用GPRS的方式发送到商家的接收和打印终端上,这种终端现在市面上没有,主要难搞定的是数据的发送和接收,哪位高手可以帮我做开发? ...…

查看全部问答>

mini2440 jlink 间接烧写nand 以及 uboot

我的是256M的nand。。没有并口,使用jlink。 使用supervivi-128M,这个文件直接烧写到nor,启动正常。从nor启动后,利用\'a\'命令烧到nand,然后从nand也能正常启动(需要按下六个按键中的一个)。说明这个文件自适应nor、nand。 我打算从nand启 ...…

查看全部问答>

单片机教程+汇编语言

很适合我们这些初学者…

查看全部问答>

jlink的usb插上电脑,不停闪烁

今天插上仿真器的数据线,突然出现指示灯不停闪烁,频率差不多是10hz。点击擦除芯片,出现:can not connect to j-link via usb。failed to connect could not erase chip,not connected擦出按手册说,是启动,那也不能不停启动啊。昨天还没 ...…

查看全部问答>

大家来看看这个是个什么呢?

不才不才啊,,请大神帮看看这个东东是干啥滴?…

查看全部问答>