c++ - Windows - 从消息队列中删除与键盘相关的消息

标签 c++ c windows keyboard message

我需要从线程的消息队列中删除所有与键盘相关的消息。经过一些研究,我设法编写了以下代码:

for( MSG zMsg; PeekMessage( & zMsg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE ); );

但是好像不行。

我不知道这是否是一个好的做法,但我没有机会也没有时间重写我正在处理的代码以使其更清晰。

请问我怎样才能让这段代码工作?

感谢您的帮助!

编辑:我正在使用 WindowsCE

最佳答案

我认为您正在过滤除键盘消息之外的所有内容。

wMsgFilterMin

要检查的消息范围内的第一条消息的值。

wMsgFilterMax

要检查的消息范围内的最后一条消息的值。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644943(v=vs.85).aspx

关于c++ - Windows - 从消息队列中删除与键盘相关的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653104/

相关文章:

c - 奇怪的显示窗口行为

c++ - 将 mtrace 用于 c++

C++ 设置 : No match for - operator

c - 写入/读取 FIFO 文件 - linux

C - 使用 typedef 时如何从用户获取字符串?

c++ - c++ fstream 的文件读/写有 2G 限制吗?

c++ - 为什么代码不会在代码块的断点处中断

c++ - 私有(private)类型说明符是否阻止来自说明符 'understanding' 的对象?

c - 数组排序与合并

c++ - 内存中的 GDI+ DC 总是单色