打印

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

[复制链接]
5820|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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没有找到好的教义,有些讲的还是很通俗易懂的

使用特权

评论回复
5
dfsa| | 2012-8-7 19:07 | 只看该作者
哪位大侠有时间久普及一下吧,普及基础知识也是一种美德:lol

使用特权

评论回复
6
qzx0580|  楼主 | 2012-8-8 08:33 | 只看该作者
这个资料真不好找,目前为止好像还没有UC/GUI比较系统的教程,顶多也就是一些有针对性的讲义,而且内容多半还摘自ucgui手册,再加一点自己的体会。其余的资料基本都是照抄ucgui手册。实用性不强。我只是想知道ucgui是怎么识别与处理这些不连续的自定义消息的。别的内容,可以自己摸索。

使用特权

评论回复
7
IJK| | 2012-8-8 09:06 | 只看该作者
UC/GUI稍微看过一下,觉得它跟Linux、Windows的消息机制,差不多。

使用特权

评论回复
8
qzx0580|  楼主 | 2012-8-8 09:17 | 只看该作者
7楼说的不错,uc/GUI的消息机制大概就是Linux/Windows消息机制的简化版,不过后者的消息机制更丰富。
uc/GUI的消息大概只有20几种吧,但是预留了200多个自定义消息的空间,所以自定义消息是很重要的一个内容。了解gui对自定义消息的识别与处理机制是非常有必要的,处理方式应该是大同小异的,关键在于怎样识别,这个问题不好理解。就算是循环扫描,也需要判断到底是哪个消息应该响应,哪个消息应该处理。
我在网上找了些资料看了,再结合自己的凭空想像,还是不知道到底是怎么识别的。

使用特权

评论回复
9
吹起的水滴| | 2012-8-8 12:27 | 只看该作者
不错

使用特权

评论回复
10
IJK| | 2012-8-8 13:17 | 只看该作者
建议LZ结合调试器,一边跑个正常运行的uc/GUI项目,一边设置断点进行debug,这样才容易理解。

使用特权

评论回复
11
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
在消息下面执行相应的操作,还是能够识别并进行相应的操作。

这是为什么?

使用特权

评论回复
12
qzx0580|  楼主 | 2012-8-8 15:47 | 只看该作者
期待牛哥再现!

使用特权

评论回复
13
无冕之王| | 2012-8-8 18:33 | 只看该作者
建议LZ结合调试器,一边跑个正常运行的uc/GUI项目,一边设置断点进行debug,这样才容易理解。
IJK 发表于 2012-8-8 13:17

这种方法值得借鉴,在实践中理解

使用特权

评论回复
14
pkat| | 2012-8-8 18:47 | 只看该作者
还是鼓励自己去领悟

使用特权

评论回复
15
秋天落叶| | 2012-8-8 19:03 | 只看该作者
固件大侠讲了你也不会太明白,还是要自己在实践中体会

使用特权

评论回复
16
qzx0580|  楼主 | 2012-8-9 09:35 | 只看该作者
我重申一下设断点跑程序只能看到现象,看不到本质。
我有空再看一看最新的手册,或许能找到答案,同时等待期待牛哥出现。

使用特权

评论回复
17
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的手册上对于自定义消息的注释就这么多。完全没有讲到如何识别不同的自定义消息。
是手册上别处还有说明,亦或就这么点内容?

使用特权

评论回复
18
qzx0580|  楼主 | 2012-8-9 14:34 | 只看该作者
还没有解决,不要沉!

使用特权

评论回复
19
qzx0580|  楼主 | 2012-8-10 07:49 | 只看该作者
牛哥,牛姐。。。。。

使用特权

评论回复
20
qzx0580|  楼主 | 2012-8-10 13:04 | 只看该作者
再顶最后一次,再没人就结帖。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

172

帖子

0

粉丝