大家一起来emWin...

emWin 2天速成实例教程001_GUIBuilder的使用方法

上一篇 / 下一篇  2018-03-09 11:48:21

备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。
利用emWin的配套工具GUIBuilder,我们可实现组态、拖放式人机用户界面设计;GUIBuilder操作界面非常简单、一目了然;GUIBuilder生成的界面文件是标准C文件,将生成的C文件加到emWin工程中并在emWin这个图形库平台上运行,即可显示你所设计的界面;每生成一个界面C文件即对应一个页面,如果要设计多个页面的界面怎么办?生成多个界面C文件并在点击消息中加入界面切换程序即可:


(1)值得注意的是emWin的每个界面都必须有一个Framewin/Window控件作为父窗体,这里我们添加一个Framewin控件做父窗体:


(2)添加一个Button控件并右键修改Button名称和字体(Button控件还有很多修改属性的API函数,只是GUIBuilder没有而已,可通过修改C文件现实,这个时候需要查阅emWin说明书的Button控件API函数):
小技巧:放置xxxx控件之后不要用鼠标移动,用上下左右建移动更容易对齐(步进是5)。



(3)添加一个Checkbox控件并设置文字、字体、颜色等(Checkbox控件还有很多修改属性的API函数,只是GUIBuilder没有而已,可通过修改C文件现实,这个时候需要查阅emWin说明书的Checkbox控件API函数):
小技巧:放置xxxx控件之后不要用鼠标移动,用上下左右建移动更容易对齐(步进是5)。



(4)将界面保存为C文件:


(5)安装emWin脱机模拟仿真软件:codeblocks-13.12mingw-setup(”软件/资料下载”栏目可下载)
(6)下载并解压emWin模拟器版本:SeggerEval_WIN32_MSVC_MinGW_GUI_V528(”软件/资料下载”栏目可下载)
(7)删除SeggerEval_WIN32_MSVC_MinGW_GUI_V528/Application目录下的所有文件(只剩下GUIDEMO_Start.c),并修改GUIDEMO_Start.c:
#include "dialog.h"
void MainTask(void)
{
   GUI_Init();                //初始化emWin/ucGUI
   CreateFramewin(WM_HBKWIN); //创建窗体,父窗体是桌面背景
   while(1) {GUI_Delay(20);}  //调用GUI_Delay函数延时20MS(最终目的是调用GUI_Exec()函数)
}

(8)将刚才用GUIBuilder生成的C文件”FramewinDLG.c”复制到SeggerEval_WIN32_MSVC_MinGW_ GUI_V528/Applicatio目录,并用CodeBlocks打开工程文件:SimulationTrial.cbp
(9)删除工程Applicatio下面原来的文件并把GUIDEMO_Start.c和FramewinDLG.c添加进来,然后编译运行:



(6)到目前为止,在Framewin窗体上的Button和Checkbox控件还是完全独立的,也就是除了能点击和显示以外,还没有任何的功能,那么我们怎么为这两个控件添加功能程序呢?比如我们想通过Button控件去控制Checkbox控件的选择状态,那么我们可以通过修改FramewinDLG.c文件的程序实现,在WM_NOTIFY_PARENT消息中(操作屏幕时程序跑到这里)加入以下程序:
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);//获取ID_CHECKBOX_0控件句柄
if(CHECKBOX_IsChecked(hItem)) CHECKBOX_Uncheck(hItem);//ID_CHECKBOX_0取消选择
elseCHECKBOX_Check(hItem);// ID_CHECKBOX_0选择



(7)GUIBuilder只是一个傻瓜式辅助设计工具,由于其功能欠缺,因此只能设计一个初步的界面;其实emWin真正强大的地方是通过C语言和API函数实现千变万化的界面,当你熟悉其C语言界面编程方法之后(事实上emWin界面编程是比较简单的),你就会觉得原来做个界面如此简单!

源码/软件下载

TAG: emWin emwin GUIBuilder 使用教程

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-09-18  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

我的存档

数据统计

  • 访问量: 2147
  • 日志数: 7
  • 建立时间: 2018-03-09
  • 更新时间: 2018-03-09

RSS订阅

Open Toolbar
博聚网