按键双击和单击c语言,【按键】[独立按键] - 单击,双击,三击以及N击

下面这段是引言,和按键程序实质内容没有任何关系,可以当P话,可直接跳到分割线的地方。

最近自己在琢磨按键程序,之前弄了,按键单击程序,程序可以实现读取按键的几个状态,然后根据需求使用。单击按键的几个状态如下:

单击后,马上返回按键值

单击后,释放之后,返回按键值

单击后,按住不放,多次返回按键值

但是在其上面扩展双击和三击以及多击程序时,遇到了麻烦(其实就是不会啦),于是在网上看了某个老师的经典按键程序,里面讲了单击和双击,拿着源程序理解了半天,终于一知半解了(一知半解的状态就是能读懂思想,但是闭卷完全自己写,写不出)。但是个人觉得其中的消抖部分还有按键释放的部分还可以改善,还有根据其思路扩展了三击以及N击,于是写了这篇博客供自己以后遗忘时参考以及跟大家分享。

正文:

此按键程序的实现的功能是单个独立按键的[单击],[长按],[双击],[三击]以及[多击]。本文分为三个部分,

第一个部分是说[单击],[长按]的程序;

第二部分是讲[双击];

第三部分是讲[三击],[多击];

一、[单击]、[长按]程序

1. 简单介绍本按键程序的单击和长按

首先说一下单击,长按的响应情况,就是按多久算单击或者长按,按下按键马上返回有效键值,还是释放之后返回有效键值等等,下面说下它在什么情况下返回有效的【单击】和【长按】。

首先看一张时序图:

0818b9ca8b590ca3270a3433284dd417.png

注:

T1:是单击的按键消抖时长,这里预设的是30ms,也可以根据需求自行定义;

T2:是单击时,按键释放的有效时间段,提前或者超过这个时间段释放的按键都再是单击了。提前

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值