为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_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,"正常");


时间: 2024-12-26 11:30:16

为OLED屏增加GUI支持4:文本框控件的相关文章

为OLED屏增加GUI支持5:图片控件

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:STM32F103 说明: 本文定义了图片控件.OLED屏是单色屏,所以本图片控件支持的是单色BMP图像. 将普通图像转换为单色图片可以用工具BmpCvt.exe.将转换后的BMP图像转换为hex文件,可以用Bin2C.exe.这两个工具都是emwin自带工具. 源代码: 转换后的hex文件再整理成如下的示例格式: battery0.c /*

为OLED屏增加GUI支持6:进度条控件

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:STM32F103 源代码: gui_widget_progbar.h /** * Copyright (c), 2015-2025 * @file gui_widget_progbar.h * @brief 文本控件头文件 * @author jdh * @date 2015/11/22 */ #ifndef _GUI_WIDGET_PRO

为OLED屏增加GUI支持3:字库

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:STM32F103 说明: GUI中有字库方能显示汉字,英文,数字等.英文数字等ASCII码128个字符保存显示容易,但汉字数万,如果不用字库芯片,用软件保存,则flash明显不够.所以只添加需要显示的汉字. 本GUI用的显示方法,可以容易的显示不同字体,不同字号的汉字和ASCII码. 源代码及步骤: 1.用工具FontCvt.exe(emw

Axure文本框控件的11种类型和支持的浏览器类型

Axure文本框控件的11种类型 (2014-08-30 15:24:35) 在Axure制作原型的过程中文本框控件可以说是比较常用的控件之一,但是你是否知道文本框控件有11种类型.而每一种类型都能让我们很方便的去完成一些效果. 类型List: (注:显示样式因浏览器会略有不同) 虽然这11种类型能给我们的原型制作带来很多方便,但是遗憾的是并不是所有的浏览器都支持上述类型.主要浏览器的兼容情况如下:

wxpython 支持python语法高亮的自定义文本框控件的代码

在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimport wximport wx.stc as stcimport images #---------------------------------------------------------------------- demoText = """## This versio

AJAX 控件集之TextBoxWatermark(水印文本框)控件

功能:       可以让TextBox控件初始化的时候拥有水印文字.属性:    TargetControlID :要使用具有水印效果的TextBox控件ID.    WatermarkCssClass :指定水印文字的CSS样式表.    WatermarkText :显示在TextBox控件的水印文字内容. 代码实例: <asp:Panel ID="panIntTemp" runat="server" GroupingText="新增资料&qu

Windows static控件(静态文本框控件)

文本不克不及主动换行,超越窗口规模会被隐蔽: 每次更改文本都要先擦除配景再从新输入,比拟费事. 实践开辟中普通运用静态文本框控件来输入文本.静态文本框是Windows 的一种规范控件,可以用来在窗口上显示一段文本,而且文本轻易遭到掌握.除了静态文本框,Windows的规范控件还有许多种,例如按钮.下拉菜单.单选按钮.复选框等.其实,控件也是一种窗口,也运用 CreateWindow 函数来创立.然则它们运用的窗口类的名字比拟特别,是由Windows预界说的:静态文本框控件的窗口类名是static

android控件之TextView(显示文本框控件)和EditText(输入文本框控件)

一.TextView(显示文本框控件) 1.TextView控件的常用属性 android:id——控件的id   android:layout_width——控件的宽度  android:layout_height——控件的高度 android:text——文本内容 android:textSize——文本大小 android:textColor——文本颜色 android:background——控件背景 <TextView android:id="@+id/name" an

为OLED屏添加GUI支持6:进度条控件

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:STM32F103 源码: gui_widget_progbar.h /** * Copyright (c), 2015-2025 * @file gui_widget_progbar.h * @brief 文本控件头文件 * @author jdh * @date 2015/11/22 */ #ifndef _GUI_WIDGET_PROG