首页 > 技术服务> emWin学习课堂emWin学习课堂

技术支持与下载

我们为您提供最优质的售前售后服务,有任何问题及建议都可以联系我们。

免费技术服务热线:

市场业务咨询电话:

周一至周五(8:30-12:00、13:00-17:30)

联系我们

广州市番禺区南华路62号华景新城华倚园1梯301

全国销售网络

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

日期:2016-11-07 16:01:58  来源:

备注:(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)删除emWin工程Applicatio下面原来的文件并把GUIDEMO_Start.c和FramewinDLG.c添加进来,然后编译运行:



(6)到目前为止,在Framewin窗体上的ButtonCheckbox控件还是完全独立的,也就是除了能点击和显示以外,还没有任何的功能, 那么我们怎么为这两个控件添加功能程序呢?比如我们想通过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取消选择

else CHECKBOX_Check(hItem);// ID_CHECKBOX_0选择


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

本地下载 网盘下载
广州尼奇光电科技有限公司 | 粤ICP备17079366号-1

更多...