OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3971|回复: 3

EMWIN window 的奇怪键盘反应

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-4-22
在线时间
3 小时
发表于 2018-4-22 20:03:48 | 显示全部楼层 |阅读模式
1金钱
我的项目是实体键盘操作的(4x4),启动就一个window,里面有3个TEXT,我的操作是键盘输入数字,3个TEXT显示输入的字符,键盘上面有删除键和SPACE键,SPACE按键没有任何功能,当我先输入2个字符,然后再删除这两个字符,再按space按键,这时候收到的按键值会重复之前的4个按键操作过程。目前没有头绪了,兄弟们谁有经验给个建议。如下我的操作过程:
1->2->del->del->space->space->space->space->space

文本显示过程:

01->12->01->00->00->01->02->00->00


我的程序有判断按键按下抬起的,收到按下则处理消息,目前出问题的就是这个没有输入焦点的界面,其他有输入焦点的界面还没有发现问题,我的怀疑是可能跟没有输入焦点有关系,我也做了更改键盘缓冲为1,依然没有作用,每次很神奇的都是4个缓冲。




最佳答案

查看完整内容[请看2#楼]

自己结贴,调试了很久,甚至我把Space的键值都修改了也没有用,而且发现只要整个页面没有获取输入焦点的控件,按键按下以后,也不会发消息给Window的回调函数,而这个诡异的问题就会发生,我后来自己造了一个BUTTON在Windows里面,这个BUTTON大小一个像素,位置0,0,看画出的效果应该没有影响我页面的任何图案(页面是一整张背景图),这样这个Window的回调函数就可以获取按键消息,我在button的消息中处理Space按键就没有问题了。 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-4-22
在线时间
3 小时
 楼主| 发表于 2018-4-22 20:03:49 | 显示全部楼层
自己结贴,调试了很久,甚至我把Space的键值都修改了也没有用,而且发现只要整个页面没有获取输入焦点的控件,按键按下以后,也不会发消息给Window的回调函数,而这个诡异的问题就会发生,我后来自己造了一个BUTTON在Windows里面,这个BUTTON大小一个像素,位置0,0,看画出的效果应该没有影响我页面的任何图案(页面是一整张背景图),这样这个Window的回调函数就可以获取按键消息,我在button的消息中处理Space按键就没有问题了。目前猜测可能是EMWIN的内部处理机制上没有应付无焦点窗口的对策,因此即使你读取了键值,他依然会缓存起来,这样其他按键按下时候就会触发这个缓存往外推挤。因为是项目进度,只看效果,不去研究技术,搞定就行,若有认真的兄弟研究的话大家可以讨论
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2018-4-22
在线时间
3 小时
 楼主| 发表于 2018-4-22 20:06:08 | 显示全部楼层
文本过程写错了,应该是:01->12->01->00->00->01->12->01->00
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-4-23 01:21:43 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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