硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5581|回复: 6
收起左侧

[emWin] emwin 焦点问题

[复制链接]

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-3-5 15:53:55 | 显示全部楼层 |阅读模式
有一个问题,创建一个 320 * 240 的窗体A,然后创建一个  x0 = 0 ,x1 = 320 ,y0 = 120 ,y1 = 240 的窗体B(就是一半),然后再在B 上贴几个按钮C,然后,从C 滑到A,那么按钮C一直是 clicked 状态,然后收不到 B 窗体 lostfocus 的消息,收不到 moveout 消息
BUG 么???  要又是 BUG,emwin 简直是 垃圾的要死了,还有那水的一B 的手册。。。。。。。[s:134]
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-3-5 16:14:23 | 显示全部楼层
[s:134]
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-3-5 16:38:37 | 显示全部楼层
[s:134]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-3-5 16:51:06 | 显示全部楼层
这个聚焦的确很难用,需要楼主多花点心思去搞了。
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2015-3-5 17:46:55 | 显示全部楼层
应该可以收到按钮C的相关消息,但是窗口B的消息没有的。

可能不支持多点同步消息吧。
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-3-31 09:10:23 | 显示全部楼层
哦,忘记 贴解决方案了,这的确是一个emwin 的一个BUG ,
具体的情形是这样

创建一个 320 *240的大背景窗体 句柄为 hwndA ;
创建一个 (0,25) --> (319,215) 的窗体,但是这个句柄是 WM_CreateWindow 得到的,是创建的顶层窗体,句柄为 hwndB
再 在 hwndB 上创建一个按钮 ,这个C 按钮的 上边缘和 B 的窗体正好重合
也就是当我从C 直接能直接滑到 A

这样,B 得不到 lostfocus 消息,A 也得不到 getfocus 消息,开始的时候我用GET_TOUCH 去追这个消息,发现,追不到,最后把所有这个情形所产生和所有经过 A 的消息全部print 出来
最后还是抓不到 TOUCH 消息,最后,我又换了一个思路,就是在  B 的下面再贴一层 透明窗体D,也是 320 * 240 ,但是 B  ,C  都是D 的孩子窗体,这样滑动就再也不会出现上面的情形了
最后我得出结论,这个的确是emwin 的一个BUG,各位千万注意了
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2015-3-31 09:12:19 | 显示全部楼层
以我们的常理判断,不管多少个 根节点父窗体,就是很多条支线,获得焦点的永远只有一个,上面的情形,常理上说,活动到A ,B 一定可以收到 lostfocus 消息,A 也一定能收到 getfocus 消息
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 06:06 , Processed in 0.040144 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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