有没有大侠普及一下UCGUI的消息处理机制!

[复制链接]
 楼主| qzx0580 发表于 2012-8-7 16:38 | 显示全部楼层 |阅读模式
我想知道UCGUI是怎么处理自定义消息的。
比如:

#define MOVELEFT     WM_USER+3
#define MOVERIGHT   WM_USER+30
#define MOVEUP         WM_USER+10
#define MOVEDOWN   WM_USER+100

//////////////////////////////////////////////////////////

以上定义几个不连续的自定义消息,请讲解一下GUI如何分辩并对这此消息做相应处理的。网络上的教义就不要了,基本上都一样,拿GUI自定义的消息来说教。
请大侠普及一下,大家都可以受益。
xsgy123 发表于 2012-8-7 18:41 | 显示全部楼层
这个还是自己去查资料吧
火箭球迷 发表于 2012-8-7 18:48 | 显示全部楼层
这个可不太好讲,还是要自己做一些功课
pkat 发表于 2012-8-7 18:59 | 显示全部楼层
还是LZ没有找到好的教义,有些讲的还是很通俗易懂的
dfsa 发表于 2012-8-7 19:07 | 显示全部楼层
哪位大侠有时间久普及一下吧,普及基础知识也是一种美德:lol
 楼主| qzx0580 发表于 2012-8-8 08:33 | 显示全部楼层
这个资料真不好找,目前为止好像还没有UC/GUI比较系统的教程,顶多也就是一些有针对性的讲义,而且内容多半还摘自ucgui手册,再加一点自己的体会。其余的资料基本都是照抄ucgui手册。实用性不强。我只是想知道ucgui是怎么识别与处理这些不连续的自定义消息的。别的内容,可以自己摸索。
IJK 发表于 2012-8-8 09:06 | 显示全部楼层
UC/GUI稍微看过一下,觉得它跟Linux、Windows的消息机制,差不多。
 楼主| qzx0580 发表于 2012-8-8 09:17 | 显示全部楼层
7楼说的不错,uc/GUI的消息机制大概就是Linux/Windows消息机制的简化版,不过后者的消息机制更丰富。
uc/GUI的消息大概只有20几种吧,但是预留了200多个自定义消息的空间,所以自定义消息是很重要的一个内容。了解gui对自定义消息的识别与处理机制是非常有必要的,处理方式应该是大同小异的,关键在于怎样识别,这个问题不好理解。就算是循环扫描,也需要判断到底是哪个消息应该响应,哪个消息应该处理。
我在网上找了些资料看了,再结合自己的凭空想像,还是不知道到底是怎么识别的。
吹起的水滴 发表于 2012-8-8 12:27 | 显示全部楼层
不错
IJK 发表于 2012-8-8 13:17 | 显示全部楼层
建议LZ结合调试器,一边跑个正常运行的uc/GUI项目,一边设置断点进行debug,这样才容易理解。
 楼主| qzx0580 发表于 2012-8-8 13:28 | 显示全部楼层
10# IJK

调过了,我自定义的消息
#define MOVEUP        WM_USER + 3
#define MOVEDOWN  WM_USER +10

在消息下面执行相应的操作,能够识别并进行相应的操作。

如果我把
#define MOVEUP        WM_USER + 3
改为
#define MOVEUP        WM_USER + 50
在消息下面执行相应的操作,还是能够识别并进行相应的操作。

这是为什么?
 楼主| qzx0580 发表于 2012-8-8 15:47 | 显示全部楼层
期待牛哥再现!
无冕之王 发表于 2012-8-8 18:33 | 显示全部楼层
建议LZ结合调试器,一边跑个正常运行的uc/GUI项目,一边设置断点进行debug,这样才容易理解。
IJK 发表于 2012-8-8 13:17

这种方法值得借鉴,在实践中理解
pkat 发表于 2012-8-8 18:47 | 显示全部楼层
还是鼓励自己去领悟
秋天落叶 发表于 2012-8-8 19:03 | 显示全部楼层
固件大侠讲了你也不会太明白,还是要自己在实践中体会
 楼主| qzx0580 发表于 2012-8-9 09:35 | 显示全部楼层
我重申一下设断点跑程序只能看到现象,看不到本质。
我有空再看一看最新的手册,或许能找到答案,同时等待期待牛哥出现。
 楼主| qzx0580 发表于 2012-8-9 11:04 | 显示全部楼层
Application-defined messages
The application program can define additional messages for its own usage.In order to ensure
that they do not  use the same message Id's as those used by emWin,user-defined messages start numbering after WM_USER.You would deinfe your own message as follows:
#define MY_MESSAGE_AAA WM_USER+0
#define MY_MESSAGE_AAA WM_USER+1
and so on.
================================================================
4.18的手册上对于自定义消息的注释就这么多。完全没有讲到如何识别不同的自定义消息。
是手册上别处还有说明,亦或就这么点内容?
 楼主| qzx0580 发表于 2012-8-9 14:34 | 显示全部楼层
还没有解决,不要沉!
 楼主| qzx0580 发表于 2012-8-10 07:49 | 显示全部楼层
牛哥,牛姐。。。。。
 楼主| qzx0580 发表于 2012-8-10 13:04 | 显示全部楼层
再顶最后一次,再没人就结帖。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

172

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

28

主题

172

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部