为OLED屏增加GUI支持4:文本框控件
来源:互联网 发布:ubuntu下载地址 编辑:程序博客网 时间:2024/05/22 01:59
为OLED屏增加GUI支持4:文本框控件
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机: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_TEXT32/**********************************************************************数据结构**********************************************************************//*** @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,"正常");
0 0
- 为OLED屏增加GUI支持4:文本框控件
- 为OLED屏增加GUI支持5:图片控件
- 为OLED屏增加GUI支持6:进度条控件
- 为OLED屏增加GUI支持6:进度条控件
- 为OLED屏增加GUI支持1:OLED驱动
- 为OLED屏增加GUI支持3:字库
- 为OLED屏增加GUI支持7:综合实例
- 为OLED屏增加GUI支持2:2D图形库
- OLED GUI
- eCGUI-增加JPEG图像支持!(嵌入式GUI)
- 为Empathy增加QQ支持
- 为Empathy增加QQ支持
- 为SimpleCursorAdapter增加CheckBox支持
- 为项目增加ibatis支持
- 为项目增加log4j支持
- 使用JOTM为Servlets增加事务支持(4)
- 使用JOTM为Servlets增加事务支持(4)
- GUI 剖析之控件篇之 静态文本框
- View Frame、bounds、clipsToBounds、masksToBounds
- HTML5 <script>元素async,defer异步加载
- 关于云计算,想明白这三个问题,2016才不会虚度
- 自定义控件之绘图篇( 五):drawText()详解
- 新手入门:不懂英文没关系 BIOS英汉对照
- 为OLED屏增加GUI支持4:文本框控件
- 设置UIImage的渲染模式:UIImage.renderingMode
- 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制
- BTS PenTesting Lab - A7 Missing Function Level Access Control
- Eclipse、MyEclipse使用git插件(egit)
- jQuery插件:利用zclip插件实现跨浏览器复制(转载)
- Android开发笔记(三十一)SQLite游标及其数据结构
- visio_连接线样式设置:如箭头线
- js回调的一个疑惑