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专题--图形化窗口的简单制作相关推荐

  1. linux图形化应用程序快捷方式制作方法

    linux图形化应用程序快捷方式制作方法 准备 一个Linux系统[传统Unity桌面环境,应用程序启动器的容器--Launcher] 说明 linux的.desktop文件是一种菜单和快捷方式的描述 ...

  2. Ubuntu 20.04.3 LTS安装rabbitvcs svn图形化客户端和简单实用

    如果想在Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是首选,可以媲美Windows环境下用的TortoiseSVN,甚至连操作都基本一样,所以强烈推荐给各位童鞋.  R ...

  3. JAVA学习——图形化窗口图标设置

    JAVA学习--图形化窗口图标设置 一.问题: 明明按着老师的代码来学习,但是我死活都改变不了图形化窗口左上角的小图标,为什么呢? 先上代码: Image im=(new ImageIcon(path ...

  4. scratch(图形化编程工具)制作透视效果!

    开工大吉,2022年目标是永久会员在服务200人,达到300永久会员规模. 我的永久会员购买链接: 永久会员包含很多资料,电子资料我都放在QQ群的群资料中,放百度网盘容易丢失和被和谐. 除了群文件的资 ...

  5. 用python编程一个图形_Python的图形化窗口编程(1)

    python能做的东西太多,以致大多数人在学习的过程中出现了迷茫.但是,无论学习哪个方向,都比原地观望要好. 我们今天学习python的图形界面制作,python的界面制作有很多. 很多人吐槽pyth ...

  6. java实现混合运算_java图形化界面实现简单混合运算计算器

    写了好几天了终于写完了这个四则运算计算器,总代码放在后面 截图如下: 首先是布局都比较简单,最上面的一个框是总的输出框, 第二个框是每次输入的数字显示在框内, 对于每一个按钮都增加监听器, 对于数字按 ...

  7. PLSQL Developer图形化窗口创建数据库全过程

    1.用系统管理员登陆,我这里用户名是system,密码是manager 2.首先建立表空间(tablespaces),点击file->new->sql window    create t ...

  8. 常用的Git命令行指令以及图形化界面的简单操作

    命令行操作 常用指令 指令 作用 指令 作用 cd 打开目录 pwd 绝对路径 ls 列出清单 mkdir 新建目录 cp 拷贝 mv 移动 rm 移除 touch 创建文档 一.git版本管理的指令 ...

  9. Scratch图形化编程之简单小游戏(贪吃蛇)

    目录 一.前言介绍 二.对象及其背景 三.面向对象的模块程序 3.1 贪吃蛇头 3.2 贪吃蛇身 3.3 Apple 四.成果展示 一.前言介绍 运用Scratch图像编程化编程,制作了一个能够通过按 ...

最新文章

  1. 元组、列表、字典及集合练习
  2. python第一个公开发行版_Python基础篇【第一篇】:python入门
  3. Mysql事务字符集
  4. Python中的eval,exec以及其相关函数
  5. vs2017 linux so导出函数,将Visual Studio 2017中的Assembly和C ++与命令行和输出相结合
  6. 【网络通信与信息安全】之深入解析TCP连接中如何确定客户端的端口号
  7. HDU - 5788 Level Up(主席树+dfs序+树状数组)
  8. java queue使用_使用Java使用Amazon Simple Queue Service
  9. C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc
  10. 【JEECG dubbo专题】Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
  11. 机器学习Machine learning in action实战相关资料
  12. g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,内存不足问题解决
  13. linux mysql多实例启动_Mysql实例Linux下启动多个mysql服务器例子
  14. Ubuntu 安装显卡驱动
  15. VS代码格式化快捷键
  16. Facebook更名Meta,扎克伯格押注元宇宙
  17. 三星S8国行android 8,用户泪奔 三星S8系列国行获安卓8.0更新
  18. Python应用 | 我喜欢看什么美剧(一)
  19. 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
  20. 推荐一款超级好用的工具:uTools详解使用

热门文章

  1. jmeter进程和线程的区别_接口测试01- Jmeter-线程进程-环境变量
  2. 关于vue使用baidu-map根据经纬度定位还是存在偏移的问题
  3. Java 生成CSV文件
  4. webview 硬件加速问题
  5. 基于K-means算法的数码迷彩生成——python实现
  6. #期望dp#洛谷 3750 分手是祝愿
  7. 1)warning LNK4233
  8. 在C语言中 分数用什么字符输出,C语言 如何输出一个分数?
  9. 2.2软件测试进阶知识
  10. pycharm英文版转换为中文版教程