emWin(UCGUI)键盘输入(实体按键操作控件)
本期教程主要跟大家讲解键盘输入,这里我们通过开发板上面带的按键进行相关的操作,在后面会专门的做一期PS2键盘的教程。
描述
键盘输入设备使用ASCII字符编码,以便区分不同的字符。例如,键盘上只有一个“A”键,但大写的“A”与小写的“a”拥有不同的ASCII编码 (分别为0x41和0x61)
本期教程主要跟大家讲解键盘输入,这里我们通过开发板上面带的按键进行相关的操作,在后面会专门的做一期PS2键盘的教程。
键盘输入设备使用ASCII字符编码,以便区分不同的字符。例如,键盘上只有一个“A”键,但大写的“A”与小写的“a”拥有不同的ASCII编码 (分别为0x41和0x61)
键盘驱动层处理键盘消息函数。这些程序会在具体键(或组合键)被按下或松开时通知窗口管理器。
下表按字母顺序列出了驱动层键盘程序。详细描述如下。
WM_CreateWindow() 创建一个窗口。
WM_CreateWindowAsChild() 创建一个子窗口。
WM_DeleteWindow() 删除一个窗口。
WM_Exec() 通过执行回调函数(所有工作)重绘有效窗口。
WM_Exec1() 通过执行一个回调函数(仅一个工作)重绘有效窗口。
WM_GetClientRect() 返回活动窗口的。
WM_GetDialogItem() 返回一个对话框项目(控件)的窗口句柄。
WM_GetOrgX() 返回活动窗口的原点 X 坐标。
WM_GetOrgY() 返回活动窗口的原点 Y 坐标。
WM_GetWindowOrgX() 返回一个窗口的原点 X 坐标。
WM_GetWindowOrgY() 返回一个窗口的原点 Y 坐标。
WM_GetWindowRect() 返回活动窗口的屏幕坐标。
WM_GetWindowSizeX() 返回一个窗口的水平尺寸(宽度)。
WM_GetWindowSizeY() 返回一个窗口的垂直尺寸(高度)。
WM_HideWindow() 使一个窗口不可见。
WM_InvalidateArea() 使显示屏的某些部分无效。
WM_InvalidateRect() 使一个窗口部分无效。
WM_InvalidateWindow() 使一个窗口无效。
WM_MoveTo() 设置一个窗口的坐标。
WM_MoveWindow() 移动一个窗口到另一个位置。
WM_Paint() 立即绘制或重绘一个窗口。
WM_ResizeWindow() 改变一个窗口尺寸。
WM_SelectWindow() 设置用于绘图操作的活动窗口。
WM_ShowWindow() 使一个窗口可见。
本期教程开始讲解STemWin的核心内容窗口管理器。通过这几期教程,大家应该明白最基本的窗口管理器知识。了解了这些基本的通信机制后,再学习控件的使用时,就会事半功倍。本期教程的内容主要来自官方手册,我这里只是将其总结一下,更详细的情况看英文版的手册。
本章节为大家讲解按钮控件自定义回调函数,通过其回调函数就可以实现各种按钮效果。
1、很多时候,我们希望设计出不同效果的按钮出来,比如做一个音乐播放器界面将快进,快退,暂停,开始等都通过按钮来实现,这个时候时候按钮的自定义回调函数就派上用场了。
emWin通过函数WM_SetCallback()自定义回调函数
下段代码就是通过 MESSAGEBOX 控件的 OK 按键实现删除信息框的对话框,即消息框的背景窗口 DIALOG 删除了,留下了 TEXT & BUTTON
笔者把STemWin官方给的自定义控件demo进行了精简,得出了这个最简单的自定义控件实现方法,所有代码如下:
|
|
代码的核心就是WM_CreateWindowAsChild这个函数,你把你的自定义控件的位置、大小、父窗口、回调函数、申请内存大小等传给它,它就在父窗口中创建你的自定义控件了。
MYWIDGET_Obj这个结构体就是你的自定义控件的数据结构,包含它需要用到的全局变量,这个例子我只写了一个字符串在里面。
可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统。还有没有其他的?
想想我们使用的手机,Google公司的Android系统,Apple公司笔记本上的的MacOSX、IPhone的IOS,他们都是操作系统。
文件夹不存在则创建
|
|
文件存在则删除
|
|
判断文件夹是否存在
|
|
判断文件是否存在
定时备份网站/home/www/htdocs/blog到/home/www/backup/site-blog下,
并删除10天前的备份。
|
|
脚本内容