各位大佬,
在emWin中,如果摁住一个button不释放,同时再摁屏幕其他区域然后释放时,发现摁住的button被执行。请问有没有什么解决办法:当button未释放时,摁屏幕任何地方都无效?
谢谢!
离线
你用的是电阻屏吗?
感觉市场上大部分电阻屏都做不到,电容屏和软件配合估计可以。
离线
@湘楚浪子 : 电容屏,芯片用的GT911
离线
试着提供一个思路:
1. “同时再摁屏幕其他区域然后释放时,发现摁住的button被执行”——你的按钮执行是在 “WM_NOTIFICATION_RELEASED” 事件吗
2. 如果是RELEASED事件里面,在里面 先判断当前按下的坐标,如果坐标不在本按钮区域内,就不执行即可。
以上只是一个思路,是否有用我没有测试过。
离线
@codetez :谢谢你的回复。是在WM_NOTIFICATION_CLICKED里面执行的。
离线
亲爱的楼主,为什么选 WM_NOTIFICATION_CLICKED 呢,出于什么考虑呢,这个本身就是点击生效啊,根本不存在你说的 —— “同时再摁屏幕其他区域然后释放时,发现摁住的button被执行”
手动笑哭。。。试试 WM_NOTIFICATION_RELEASED ?
离线
@codetez :这是一个驱动板,需要发串口数据给主板,为了主板快速响应,所以一旦按下键,就马上响应。可能也是考虑到用户的体验感吧。
离线
好吧,感觉问题不大,合理使用 “WM_NOTIFICATION_CLICKED” + “WM_NOTIFICATION_RELEASED” 应该可以满足你的需求
离线
在GUI_Init();的后面加上一句BUTTON_SetReactOnLevel();再试试
离线