Win32 应用程序如何仅响应第一个 WM_KEYDOWN 通知? MSDN 文档声称第 30 位“指定先前的按键状态。如果在发送消息之前按键处于按下状态,则该值为 1;如果按键处于按下状态,则该值为 0。”但在我的 WndProc 中,第 30 位始终为 0。
case WM_KEYDOWN:
// ToDo - stop multiple notifications for repeating keys
printf("WM_KEYDOWN %i %i", wParam, lParam & 30);
return 0;
Is l参数&30要求这个的方式错误吗?我还做错了什么吗?
要测试位 30,请勿与 30 进行 AND 运算,而是与 1
const bool isBitSet = lParam & (1 << 30);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)