Win32 应用程序如何只响应第一个 WM_KEYDOWN 通知? MSDN 文档声称第 30 位“指定先前的 key 状态。如果在发送消息之前 key 已关闭,则值为 1,如果 key 已启动,则值为零。”但在我的 WndProc 中,第 30 位始终为 0。
case WM_KEYDOWN:
// ToDo - stop multiple notifications for repeating keys
printf("WM_KEYDOWN %i %i", wParam, lParam & 30);
return 0;
lParam & 30 是不是错误的请求方式?我做错了什么吗?
最佳答案
要测试位 30,不要与 30 进行 AND,而是与 1 << 30 进行 AND。
const bool isBitSet = lParam & (1 << 30);
关于c - 只响应第一个 WM_KEYDOWN 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362799/