MFC键盘响应问题。长按下时,只响应一次,即只发送一次按下时的值。谢谢!
希望按钮按下和松开发送不同的值,用到了setstate()函数,主要是希望长按的时候按键只响应一次,即只发送一次按下按钮要发送的值。当长按结束松开按键的时候,再发送一次松...
希望按钮按下和松开发送不同的值,用到了setstate()函数,主要是希望长按的时候按键只响应一次,即只发送一次按下按钮要发送的值。当长按结束松开按键的时候,再发送一次松开发送的值。现在的情况是长按的时候两个值不停交替发送。很苦恼啊,纠结好几天了。
展开
1个回答
展开全部
请问你是监听键盘的响应事件么?
键盘本来就是按下去一个键后一直发送按下消息的。如你一直按住A,一直会有A在输出,而不会只输出一个A。
这个解决办法你可以在代码内加一个flag做判断。类似区别下长按和不停按同一个键。其实这两种操作发送的消息是一样的。你可以判断不停按之间发送两个KEY DOWN的消息的时间来区分。如果时间小于一个flag值,你可以判断此时是长按该按钮。
键盘本来就是按下去一个键后一直发送按下消息的。如你一直按住A,一直会有A在输出,而不会只输出一个A。
这个解决办法你可以在代码内加一个flag做判断。类似区别下长按和不停按同一个键。其实这两种操作发送的消息是一样的。你可以判断不停按之间发送两个KEY DOWN的消息的时间来区分。如果时间小于一个flag值,你可以判断此时是长按该按钮。
追问
不好意思昨天没有及时回复。
我这个应该算是监听键盘响应事件。您的建议我觉得可行,不过我水平有限,没试出来怎么区分长按和不停按的时间。后来在百度知道了看到一个方法:http://zhidao.baidu.com/question/152224905.html,晚上在我同学的大力帮助下解决了问题。
谢谢你的建议!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询