STemWin专题--图形化窗口的简单制作
STemWin图形化界面设计专题
STemWin专题–图形化窗口的简单制作
1、首先,你需要设置一个窗口,窗口设计的软件在KEIL(MDK)的安装目录路径下。
我的是这个路径,每个版本安装目录都大同小异,这里大家可以找找看。
2、直接去到之前你安装目录keil(MDK)的路径下找到GUIBuider应用程序(以下是我的安装路径)
3、打开设计窗口
添加对话框控件
4、修改对话框大小800*480
5、右键选择Set Font,设置字体大小
6、右键Set title text 修改对话窗口文本
7、添加自己喜欢的控件,拖动改变控件大小
8、建好后点击file–>save
9、保存的代码就在安装目录的路径下啦!
10、值得注意的是,打开该代码后,直接把以下的函数复制到14点的相应函数进行函数内容的替换.
替换到这
11、把之前下载好的文件打开(下载链接:https://www.segger.com/downloads/embedded-studio#ESforARM)
12、下载好后,以VC++运行这个工作区
13、在该文件的相应处修改程序
14、把代码替换到GUIIDE_Start.c文件下
#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"#include "WM.h"
#include "BUTTON.h"
#include "CHECKBOX.h"
#include "DROPDOWN.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include "LISTBOX.H"
#include "MULTIEDIT.h"
#include "RADIO.h"
#include "SLIDER.h"
#include "TEXT.h"
#include "PROGBAR.h"
#include "SCROLLBAR.h"
#include "LISTVIEW.h"void OnButtonClicked(WM_MESSAGE * pMsg);
void OnButtonReleased(WM_MESSAGE * pMsg);
void OnButtonMovedOut(WM_MESSAGE * pMsg);static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {{FRAMEWIN_CreateIndirect,"feiluo",0,0,0,800,480,FRAMEWIN_CF_MOVEABLE,0},{BUTTON_CreateIndirect,"BUTTON0", GUI_ID_BUTTON0,82,122,162,37,0,0},{BUTTON_CreateIndirect,"BUTTON1", GUI_ID_BUTTON1,357,123,152,35,0,0}};void PaintDialog(WM_MESSAGE * pMsg)
{WM_HWIN hWin = pMsg->hWin;
}void InitDialog(WM_MESSAGE * pMsg)
{WM_HWIN hWin = pMsg->hWin;FRAMEWIN_SetFont(hWin,&GUI_Font24B_ASCII);FRAMEWIN_SetTextAlign(hWin,GUI_TA_VCENTER|GUI_TA_CENTER);FRAMEWIN_AddCloseButton(hWin,FRAMEWIN_BUTTON_RIGHT,0);FRAMEWIN_AddMaxButton(hWin,FRAMEWIN_BUTTON_RIGHT,1);FRAMEWIN_AddMinButton(hWin,FRAMEWIN_BUTTON_RIGHT,2);FRAMEWIN_SetTitleHeight(hWin,30);}static void _cbCallback(WM_MESSAGE * pMsg)
{int NCode, Id;WM_HWIN hWin = pMsg->hWin;switch (pMsg->MsgId){case WM_PAINT:PaintDialog(pMsg);break;case WM_INIT_DIALOG:InitDialog(pMsg);break;case WM_KEY:switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key){case GUI_KEY_ESCAPE:GUI_EndDialog(hWin,1);break;case GUI_KEY_ENTER:GUI_EndDialog(hWin,0);break;}case WM_NOTIFY_PARENT:Id = WM_GetId(pMsg->hWinSrc);NCode = pMsg->Data.v;switch (Id){case GUI_ID_OK:if(NCode == WM_NOTIFICATION_RELEASED)GUI_EndDialog(hWin,0);break;case GUI_ID_CANCEL:if(NCode == WM_NOTIFICATION_RELEASED)GUI_EndDialog(hWin,0);break;case GUI_ID_BUTTON0:switch(NCode){case WM_NOTIFICATION_CLICKED:// OnButtonClicked(pMsg);break;case WM_NOTIFICATION_RELEASED:// OnButtonReleased(pMsg);break;case WM_NOTIFICATION_MOVED_OUT:// OnButtonMovedOut(pMsg);break;}break;case GUI_ID_BUTTON1:switch (NCode){case WM_NOTIFICATION_CLICKED:// OnButtonClicked(pMsg);break;case WM_NOTIFICATION_RELEASED:// OnButtonReleased(pMsg);break;case WM_NOTIFICATION_MOVED_OUT:// OnButtonMovedOut(pMsg);break;}break;}break;default:WM_DefaultProc(pMsg);
}
}
void MainTask(void )
{GUI_Init();WM_SetDesktopColor(GUI_WHITE);WM_SetCreateFlags(WM_CF_MEMDEV);GUI_ExecDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);}
15、运行图像如下
16、这样就可以啦!~希望能帮到大家。开捶!!!(ps:大家可以尝试着捶其它自己喜欢的控件,发挥自己的现象去捶它)
STemWin专题--图形化窗口的简单制作相关推荐
- linux图形化应用程序快捷方式制作方法
linux图形化应用程序快捷方式制作方法 准备 一个Linux系统[传统Unity桌面环境,应用程序启动器的容器--Launcher] 说明 linux的.desktop文件是一种菜单和快捷方式的描述 ...
- Ubuntu 20.04.3 LTS安装rabbitvcs svn图形化客户端和简单实用
如果想在Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是首选,可以媲美Windows环境下用的TortoiseSVN,甚至连操作都基本一样,所以强烈推荐给各位童鞋. R ...
- JAVA学习——图形化窗口图标设置
JAVA学习--图形化窗口图标设置 一.问题: 明明按着老师的代码来学习,但是我死活都改变不了图形化窗口左上角的小图标,为什么呢? 先上代码: Image im=(new ImageIcon(path ...
- scratch(图形化编程工具)制作透视效果!
开工大吉,2022年目标是永久会员在服务200人,达到300永久会员规模. 我的永久会员购买链接: 永久会员包含很多资料,电子资料我都放在QQ群的群资料中,放百度网盘容易丢失和被和谐. 除了群文件的资 ...
- 用python编程一个图形_Python的图形化窗口编程(1)
python能做的东西太多,以致大多数人在学习的过程中出现了迷茫.但是,无论学习哪个方向,都比原地观望要好. 我们今天学习python的图形界面制作,python的界面制作有很多. 很多人吐槽pyth ...
- java实现混合运算_java图形化界面实现简单混合运算计算器
写了好几天了终于写完了这个四则运算计算器,总代码放在后面 截图如下: 首先是布局都比较简单,最上面的一个框是总的输出框, 第二个框是每次输入的数字显示在框内, 对于每一个按钮都增加监听器, 对于数字按 ...
- PLSQL Developer图形化窗口创建数据库全过程
1.用系统管理员登陆,我这里用户名是system,密码是manager 2.首先建立表空间(tablespaces),点击file->new->sql window create t ...
- 常用的Git命令行指令以及图形化界面的简单操作
命令行操作 常用指令 指令 作用 指令 作用 cd 打开目录 pwd 绝对路径 ls 列出清单 mkdir 新建目录 cp 拷贝 mv 移动 rm 移除 touch 创建文档 一.git版本管理的指令 ...
- Scratch图形化编程之简单小游戏(贪吃蛇)
目录 一.前言介绍 二.对象及其背景 三.面向对象的模块程序 3.1 贪吃蛇头 3.2 贪吃蛇身 3.3 Apple 四.成果展示 一.前言介绍 运用Scratch图像编程化编程,制作了一个能够通过按 ...
最新文章
- 元组、列表、字典及集合练习
- python第一个公开发行版_Python基础篇【第一篇】:python入门
- Mysql事务字符集
- Python中的eval,exec以及其相关函数
- vs2017 linux so导出函数,将Visual Studio 2017中的Assembly和C ++与命令行和输出相结合
- 【网络通信与信息安全】之深入解析TCP连接中如何确定客户端的端口号
- HDU - 5788 Level Up(主席树+dfs序+树状数组)
- java queue使用_使用Java使用Amazon Simple Queue Service
- C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc
- 【JEECG dubbo专题】Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 机器学习Machine learning in action实战相关资料
- g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,内存不足问题解决
- linux mysql多实例启动_Mysql实例Linux下启动多个mysql服务器例子
- Ubuntu 安装显卡驱动
- VS代码格式化快捷键
- Facebook更名Meta,扎克伯格押注元宇宙
- 三星S8国行android 8,用户泪奔 三星S8系列国行获安卓8.0更新
- Python应用 | 我喜欢看什么美剧(一)
- 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
- 推荐一款超级好用的工具:uTools详解使用