您尚未登录。

楼主 #1 2020-06-09 15:16:27

szchen2006
会员
注册时间: 2019-10-09
已发帖子: 216
积分: 166.5

在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

各位大佬,

在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。请问有没有什么解决办法:当button未释放时,摁屏幕任何地方都无效?

谢谢!

离线

#2 2020-06-09 15:34:06

湘楚浪子
会员
注册时间: 2019-12-22
已发帖子: 40
积分: 39.5

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

你用的是电阻屏吗?
感觉市场上大部分电阻屏都做不到,电容屏和软件配合估计可以。

离线

楼主 #3 2020-06-09 15:36:38

szchen2006
会员
注册时间: 2019-10-09
已发帖子: 216
积分: 166.5

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

@湘楚浪子 : 电容屏,芯片用的GT911

离线

#4 2020-06-09 15:48:42

codetez
会员
注册时间: 2020-05-23
已发帖子: 72
积分: 47

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

试着提供一个思路:

1. “同时再摁屏幕其他区域然后释放时,发现摁住的button被执行”——你的按钮执行是在 “WM_NOTIFICATION_RELEASED” 事件吗
2. 如果是RELEASED事件里面,在里面 先判断当前按下的坐标,如果坐标不在本按钮区域内,就不执行即可。

以上只是一个思路,是否有用我没有测试过。

离线

楼主 #5 2020-06-09 15:55:05

szchen2006
会员
注册时间: 2019-10-09
已发帖子: 216
积分: 166.5

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

@codetez :谢谢你的回复。是在WM_NOTIFICATION_CLICKED里面执行的。

离线

#6 2020-06-09 16:10:06

codetez
会员
注册时间: 2020-05-23
已发帖子: 72
积分: 47

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

亲爱的楼主,为什么选 WM_NOTIFICATION_CLICKED 呢,出于什么考虑呢,这个本身就是点击生效啊,根本不存在你说的 —— “同时再摁屏幕其他区域然后释放时,发现摁住的button被执行”

手动笑哭。。。试试 WM_NOTIFICATION_RELEASED ?

离线

楼主 #7 2020-06-09 16:18:15

szchen2006
会员
注册时间: 2019-10-09
已发帖子: 216
积分: 166.5

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

@codetez :这是一个驱动板,需要发串口数据给主板,为了主板快速响应,所以一旦按下键,就马上响应。可能也是考虑到用户的体验感吧。

离线

#8 2020-06-09 16:36:20

codetez
会员
注册时间: 2020-05-23
已发帖子: 72
积分: 47

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

好吧,感觉问题不大,合理使用 “WM_NOTIFICATION_CLICKED” + “WM_NOTIFICATION_RELEASED” 应该可以满足你的需求

离线

#9 2020-06-09 21:16:56

armstrong
会员
注册时间: 2019-04-10
已发帖子: 287
积分: 196.5

Re: 在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。

在GUI_Init();的后面加上一句BUTTON_SetReactOnLevel();再试试

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn