硬汉嵌入式论坛

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

[emWin] 不使用触摸,只使用实体按键对emWin操作的方法

[复制链接]

17

主题

121

回帖

172

积分

初级会员

积分
172
发表于 2017-9-6 10:07:02 | 显示全部楼层 |阅读模式
要实现的功能:
      1、系统只有一个主界面,并且主界面上没有类似按钮这类的控件,只有一些显示的文本和一些提示意义的显示图标。
      2、长按某个实体按键,切换到系统设置界面(此窗口下可以有多个多个窗口)。
      3、在系统设置界面下,主要完成对系统参数设置,比如系统时间设置……
      4、希望用到实体按键的数量越少越好

本来打算使用下面两个方法实现,但是最终还是放弃了:
      1、多个任务调用emWin方法来实现,但是看到版主说这方法容易出问题,所以放弃了。
      2、使用信号量向emWin任务发消息,但是发现如果emWin等待信号时间过长就会影响此任务的运行,等待信号时间过短有时候按键不响应。


请问有什么好的办法?
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-9-6 10:36:32 | 显示全部楼层
我估计要用到的实体按键包括,上、下箭头,选择键(回车),OK、CANCEL,如果需要用到数字、字母等输入就更复杂了。

emwin为了设计简单不支持消息队列,而消息队列是这种消息驱动的gui的核心要素。
没有了消息队列的支持让emwin在使用时必须小心翼翼,例如它的TIMER消息是从硬件ISR那边直接Send过来的(看ucgui的源代码),有点恐怖。
回复

使用道具 举报

17

主题

121

回帖

172

积分

初级会员

积分
172
 楼主| 发表于 2017-9-6 10:48:16 | 显示全部楼层

回 novice 的帖子

novice:我估计要用到的实体按键包括,上、下箭头,选择键(回车),OK、CANCEL,如果需要用到数字、字母等输入就更复杂了。

emwin为了设计简单不支持消息队列,而消息队列是这种消息驱动的gui的核心要素。
没有了消息队列的支持让emwin在使用时必须小心翼翼,例如它的TIMER消息是从硬件I .. (2017-09-06 10:36)
回复

使用道具 举报

17

主题

121

回帖

172

积分

初级会员

积分
172
 楼主| 发表于 2017-9-6 10:52:24 | 显示全部楼层

回 novice 的帖子

novice:我估计要用到的实体按键包括,上、下箭头,选择键(回车),OK、CANCEL,如果需要用到数字、字母等输入就更复杂了。

emwin为了设计简单不支持消息队列,而消息队列是这种消息驱动的gui的核心要素。
没有了消息队列的支持让emwin在使用时必须小心翼翼,例如它的TIMER消息是从硬件I .. (2017-09-06 10:36) 
不用到字母,只用到数字。修改参数只是让某个变量做加减,然后保存,不知能否简单点?想借助按键的长、短按键功能,打算最多只使用四个实体按键,不知可行不?
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-9-6 11:41:51 | 显示全部楼层
如果只是让数值做加减,那么两个方向键就可以了吧?
还要一个控件选择键,用来移动输入焦点。
一个OK,一个CANCEL(如果支持取消的话)。
回复

使用道具 举报

1

主题

71

回帖

74

积分

初级会员

积分
74
发表于 2017-9-6 11:46:13 | 显示全部楼层

回 novice 的帖子

novice:如果只是让数值做加减,那么两个方向键就可以了吧?
还要一个控件选择键,用来移动输入焦点。
一个OK,一个CANCEL(如果支持取消的话)。 (2017-09-06 11:41) 
按键都是自己处理,你不同的功能 发送不同的按键码就行了
一个按键在不同的状态下可以对应不同的功能
自己处理就行了
回复

使用道具 举报

17

主题

121

回帖

172

积分

初级会员

积分
172
 楼主| 发表于 2017-9-6 17:50:09 | 显示全部楼层

回 252514251 的帖子

252514251:按键都是自己处理,你不同的功能 发送不同的按键码就行了
一个按键在不同的状态下可以对应不同的功能
自己处理就行了 (2017-09-06 11:46)
不对要操作的控件聚焦,是不起作用的
回复

使用道具 举报

17

主题

121

回帖

172

积分

初级会员

积分
172
 楼主| 发表于 2017-9-6 17:59:58 | 显示全部楼层
采用emWin+裸机的方式试了一下,三个实体按键差不多可以实现。版主有没有好一点的建议?麻烦给点建议。谢谢[s:130]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-9-7 00:38:33 | 显示全部楼层

回 王小波 的帖子

王小波:采用emWin+裸机的方式试了一下,三个实体按键差不多可以实现。版主有没有好一点的建议?麻烦给点建议。谢谢[s:130]
 (2017-09-06 17:59) 
参考ATM机的例子,支持触摸和实体按键两种方式:
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=5595

里面有个视频演示,你看下是否合适。
回复

使用道具 举报

3

主题

13

回帖

22

积分

新手上路

积分
22
发表于 2018-3-16 18:01:00 | 显示全部楼层
楼主你好, 你的功能实现了吗? 我要实现的功能和你类似,能否指导一下,谢谢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-3-17 02:08:02 | 显示全部楼层
tianyukobe 发表于 2018-3-16 18:01
楼主你好, 你的功能实现了吗? 我要实现的功能和你类似,能否指导一下,谢谢

有什么问题直接发出来就行,我可以帮你
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2018-4-24 14:23:15 | 显示全部楼层
eric2013 发表于 2018-3-17 02:08
有什么问题直接发出来就行,我可以帮你

请问一下,如果Dialog只有Text显示控件,能触发WM_KEY消息吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-24 16:52:31 | 显示全部楼层
uevolo 发表于 2018-4-24 14:23
请问一下,如果Dialog只有Text显示控件,能触发WM_KEY消息吗?

这个不能哦,这种情况可以使用自定义消息,非常方便。
在我们新版emWin教程有对应的章节说明:
https://forum.anfulai.cn/forum.p ... &extra=page%3D1
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2018-4-24 17:11:43 | 显示全部楼层
eric2013 发表于 2018-4-24 16:52
这个不能哦,这种情况可以使用自定义消息,非常方便。
在我们新版emWin教程有对应的章节说明:
http:// ...

自定义消息发送需要指定窗口句柄吧?我是用按键切换界面(12864屏),而有些界面只显示数据,所以。。。
=_=现在放了个最小的按钮在界面上,就能收到WM_KEY消息了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-24 17:20:26 | 显示全部楼层
uevolo 发表于 2018-4-24 17:11
自定义消息发送需要指定窗口句柄吧?我是用按键切换界面(12864屏),而有些界面只显示数据,所以。。。
= ...

按键也可以发自定义消息,你处理下即可,跟发WM_KEY消息一样。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2018-4-24 17:35:09 | 显示全部楼层
eric2013 发表于 2018-4-24 17:20
按键也可以发自定义消息,你处理下即可,跟发WM_KEY消息一样。

请问哪一章,教程我很早就下载了。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-25 01:04:27 | 显示全部楼层
uevolo 发表于 2018-4-24 17:35
请问哪一章,教程我很早就下载了。。

不好意思,刚回复你,看这个例子即可:

https://forum.anfulai.cn/forum.p ... 7%C4%DC%BC%D2%BE%D3
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 22:00 , Processed in 0.050503 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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