环境:
主机: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,"正常");
上一篇:为OLED屏增加GUI支持5:图片控件
下一篇:为OLED屏增加GUI支持2:2D图形库
推荐阅读最新更新时间:2024-11-10 11:27
设计资源 培训 开发板 精华推荐
- 无人机机架
- 使用 ON Semiconductor 的 LA6565 的参考设计
- LT1170HVCQ、5V/5A 反激式转换器的典型应用
- LT3755IUD-1 汽车降压-升压型 LED 驱动器的典型应用电路
- MAX1300AEUG方案验证板
- NUCLEO-F072RB,STM32 Nucleo 开发板,带有 STM32F072RBT6 MCU,支持 Arduino 和 ST morpho 连接
- NCL30082SMRTGEVB:8 W SEPIC LED 驱动器评估板
- LTC3630AEDHC 5V 至 76V 输入至 5V 输出、150mA 稳压器和 20kHz 最小突发频率的典型应用电路
- Protues仿真实例(8051)-8051计数器
- MAXREFDES41#:24V至12V、40W隔离电源,带平面变压器
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位
- 提交WEBENCH设计,就能参与转盘抽奖!
- 悦读 TI DEYISUPPORT 中国工程师精彩博文,答题赢好礼喽!
- 有奖学习 | 探索泰克 4 系列 BMSO 强大功能,还能参与“叠叠乐”省钱大作战!
- ADI 全新技术资料集锦
- 下载《Altera SoC深度体验》,打分评论赢好礼
- ADI和\"西北模电王\"邀您一起下载研读《新概念模拟电路》系列第一本电子书《晶体管》
- 有奖直播 | “PCIM Asia 2024” ROHM 展位线上直播
- 有奖直播|安森美先进的封装和驱动技术助力碳化硅能源应用
- 下载有礼:2017年泰克亚太专家大讲堂第四期: 如何应对新型半导体材料表征测试挑战
- 闯关集卡|轻型电动车与电动工具正当时,英飞凌邀你上道!