OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4672|回复: 3

uCGUI的回调机制

[复制链接]

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-9-4
在线时间
0 小时
发表于 2014-9-17 14:21:51 | 显示全部楼层 |阅读模式
5金钱

新手初试uCGUI+ucosII,移植成功,并且运行起来,但是想写一个比较复杂的界面,现在写的界面依靠的是ucosII一个任务里执行下面函数,实现屏幕的刷新。对于回调机制,一直不是很明白,若为一个控件建立一个回调函数,回调函数在什么时间被调用呢?与我之前使用的ucosii刷新的方法,各有什么优缺点呢?还望大神不吝赐教。

void ExecIdleTask(void *pdata)
{
 while(1)
 {
  GUI_Exec();
  GUI_TOUCH_Exec();
  OSTimeDly(1);
 }
}

最佳答案

查看完整内容[请看2#楼]

回调机制,就是对消息的集中管理:在一个函数中,对不同类型的消息利用switch,case分出那一种,对他们进行相应 如何使用回调机制,即ucGUI如何传递消息,这里就借助了地址的概念,控件的回调函数的地址保存在控件对象<控件名>_Obj中,详见<控件名>_Obj.Widget.Win.cb 在传递消息的函数中,通过控件句柄,查找到该控件的回调函数,从而可以发送消息,你可以看一个发送消息函数的实现过程,里面有一句(*cb)(Msg);这么一句 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2014-9-17 14:21:52 | 显示全部楼层
回调机制,就是对消息的集中管理:在一个函数中,对不同类型的消息利用switch,case分出那一种,对他们进行相应

如何使用回调机制,即ucGUI如何传递消息,这里就借助了地址的概念,控件的回调函数的地址保存在控件对象<控件名>_Obj中,详见<控件名>_Obj.Widget.Win.cb

在传递消息的函数中,通过控件句柄,查找到该控件的回调函数,从而可以发送消息,你可以看一个发送消息函数的实现过程,里面有一句(*cb)(Msg);这么一句,这就是调用控件的回调函数的地方。


至于建立任务重绘,可参见http://www.openedv.com/posts/list/37568.htm#212183中我的回复,里面有一些介绍

原理性的东西,不大好理解,先做一些例子,真正感兴趣的时候就可以深入理解了
努力,前进。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2014-9-17 23:31:03 | 显示全部楼层
帮顶。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2014-9-4
在线时间
0 小时
 楼主| 发表于 2014-9-20 13:47:46 | 显示全部楼层
回复【3楼】5498折戟沉沙:
---------------------------------
谢谢   还是英文文档给力啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 10:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表