硬汉嵌入式论坛

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

[emWin] emwin 中如何实现按钮长按动作,请教大神

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2015-1-20 17:00:15 | 显示全部楼层 |阅读模式
按键好像只有三个消息,但是没有长按消息,我想实现按键长按,然后不断刷屏,然后相应进度条动态显示,应该如何做,感谢能够指点一下
回复

使用道具 举报

12

主题

134

回帖

170

积分

初级会员

积分
170
发表于 2015-1-20 17:51:04 | 显示全部楼层
我也碰到这样的问题,想按键长按调音量。兄台的问题解决了么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-1-20 21:13:32 | 显示全部楼层
我们最近发布的示波器的长按动作不是emwin实现的,而是按键本身的驱动就支持长按,然后给emWin发消息就行。
回复

使用道具 举报

4

主题

11

回帖

4

积分

新手上路

积分
4
发表于 2015-1-21 09:23:38 | 显示全部楼层
我用的思路和板凳位一样。可以改改按键部分的驱动,加上长按和短按的判断部分。
回复

使用道具 举报

33

主题

204

回帖

303

积分

高级会员

积分
303
发表于 2015-1-21 09:24:43 | 显示全部楼层
ucos的作者写过一本好像叫系统构件的书,里面有矩阵键盘在ucos下的应用,其中有长按的处理,可以找来看看。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2015-1-21 10:41:53 | 显示全部楼层
,我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2015-1-21 10:42:43 | 显示全部楼层

回 waterx3 的帖子

waterx3:
ucos的作者写过一本好像叫系统构件的书,里面有矩阵键盘在ucos下的应用,其中有长按的处理,可以找来看看。
,我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2015-1-21 10:43:53 | 显示全部楼层

回 eric2013 的帖子

eric2013:
我们最近发布的示波器的长按动作不是emwin实现的,而是按键本身的驱动就支持长按,然后给emWin发消息就行。
我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊
回复

使用道具 举报

33

主题

204

回帖

303

积分

高级会员

积分
303
发表于 2015-1-21 11:49:03 | 显示全部楼层
emwin中文手册,22.5 游戏操纵杆输入示例
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-1-21 20:04:30 | 显示全部楼层

回 zm917422041 的帖子

zm917422041:我是新手,思路上的东西可能还没理解清楚,我想的是在主循环中查询按键,然后发送按键消息到窗口,但是有感觉这是外置按键的操作,我现在是直接现在触摸屏上操作按键,不知道思路啊 (2015-01-21 10:43) 
你说的按键是指触摸屏上面的按钮吗
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2015-1-22 10:33:12 | 显示全部楼层

回 eric2013 的帖子

eric2013:你说的按键是指触摸屏上面的按钮吗 (2015-01-21 20:04) 
是的啊,
回复

使用道具 举报

12

主题

134

回帖

170

积分

初级会员

积分
170
发表于 2015-1-23 16:51:52 | 显示全部楼层
楼主,你现在解决了么?跟你分享我现在的解决的办法,在定时器里判断按键是否按下 用这个语句        if(BUTTON_IsPressed(WM_GetDialogItem(pMsg->hWin, GUI_ID_BUTTON7))) 我现在是这么弄的,感觉还可以
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2015-1-25 09:47:46 | 显示全部楼层
楼上可以再说详细点吗?这个BUTTON_IsPressed返回的是按下的时间吗?
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-1-25 17:17:37 | 显示全部楼层
可以不用定时器,直接在 while (1)  GUI_Delay (10) ; 每隔10ms去 polling 就好,一连串的按下动作就能判断是长按了,就好像ADC采集一样的原理,如果嫌10ms不准,还可以调小,根据人的敏捷值去调.....
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-1-25 17:18:34 | 显示全部楼层
哦,对了,还要加上 move_out 判断,就是在 button  上,move_out 就认为是 release了,就OK了
回复

使用道具 举报

12

主题

134

回帖

170

积分

初级会员

积分
170
发表于 2015-1-25 19:49:49 | 显示全部楼层

回 slovak 的帖子

slovak:楼上可以再说详细点吗?这个BUTTON_IsPressed返回的是按下的时间吗? (2015-01-25 09:47) 
不是,是判断是否正按下,。如果按下就返回1
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-10-16 14:40:23 | 显示全部楼层

回 true_casey 的帖子

true_casey:可以不用定时器,直接在 while (1)  GUI_Delay (10) ; 每隔10ms去 polling 就好,一连串的按下动作就能判断是长按了,就好像ADC采集一样的原理,如果嫌10ms不准,还可以调小,根据人的敏捷值去调..... (2015-01-25 17:17) 
在回调函数用delay就是 找死啊
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-10-19 09:57:12 | 显示全部楼层

回 true_casey 的帖子

true_casey:哦,对了,还要加上 move_out 判断,就是在 button  上,move_out 就认为是 release了,就OK了  (2015-01-25 17:18) 
move_OUT:已单击单选按钮,并且指针已移出单选按钮,但没有释放

这个必须 移出所选对象外面才触发啊
回复

使用道具 举报

0

主题

5

回帖

0

积分

新手上路

积分
0
发表于 2016-6-13 17:28:32 | 显示全部楼层
同样问题  楼主解决了吗
回复

使用道具 举报

0

主题

5

回帖

0

积分

新手上路

积分
0
发表于 2016-6-13 20:15:33 | 显示全部楼层
[s:144]  
回复

使用道具 举报

0

主题

5

回帖

0

积分

新手上路

积分
0
发表于 2016-6-14 14:42:07 | 显示全部楼层

回 xiaosir 的帖子

xiaosir:楼主,你现在解决了么?跟你分享我现在的解决的办法,在定时器里判断按键是否按下 用这个语句        if(BUTTON_IsPressed(WM_GetDialogItem(pMsg->hWin, GUI_ID_BUTTON7))) 我现在是这么弄的,感觉还可以 (2015-01-23 16:51) 
真的可以!感激不尽啊[s:149][s:150][s:151]
回复

使用道具 举报

0

主题

5

回帖

0

积分

新手上路

积分
0
发表于 2016-6-14 14:44:23 | 显示全部楼层

回 waterx3 的帖子

waterx3:emwin中文手册,22.5 游戏操纵杆输入示例  (2015-01-21 11:49) 
我试过了,在仿真里面是可以,但是上板子就不行了[s:142]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-17 08:05 , Processed in 0.050196 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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