WM_CHAR重复响应问题

我用WH_GETMESSAGE挂钩,来获取wm_char消息,我键盘按一个a他会响应很多次重复发两次a给我,我找了下资料说键盘按下和抬起都会发送消息,可是我实验过不是这样... 我用WH_GETMESSAGE挂钩,来获取wm_char消息,我键盘按一个a他会响应很多次重复发两次a给我,我找了下资料说键盘按下和抬起都会发送消息,可是我实验过不是这样的,他还是会多次抬起按下,谁知道这个是什么原因 展开
 我来答
百度网友9af53fb
2013-10-22 · TA获得超过998个赞
知道小有建树答主
回答量:261
采纳率:100%
帮助的人:90.1万
展开全部
以下供参考。
按下一个键会响应两个消息WM_KEYDOWN和WM_CHAR,前者先响应,后者后响应,WM_CHAR需要经过TranslateMessage函数 处理后响应,如果按住一个键会不断产生这两个消息,上面说的是一般键,不包括功能键
功能键如shift、ctrl等键不会产生WM_CHAR消息
如果松开按键会产生WM_KEYUP消息
WM_KEYUP可能触发TranslateMessage函数。

重载CWinApp的虚拟函数:ProcessMessageFilter(int code,LPMSG lpMsg)
在这个函数里判断lpMsg->hwnd 是否为你想要处理的对话框句柄,再判断lpMsg->message为WM_KEYDOWN或WM_KEYUP
追问
他只有在用到浏览器中的输入框的时候是返回一次的,其他富输入框的时候都是多次的,这个是为什么啊,怎么解决?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式