3

我需要通过 WM_KEYDOWN 消息获取 lParam 参数的第 30 位。写在这里的这一位让我知道之前是否按下了该键。这段代码正确吗?

(lParam >> 30) & 1
4

1 回答 1

9

我只会使用lParam & 0x40000000. 如果那不是零,则b30设置(顺便说一下,我认为是三十二的第三十)。而且它更有可能是一次{logical-and, compare}手术,而不是{shift, logical-and, compare}.

请注意,即使您使用了体面的编译器,也很有可能生成更高效的代码,(lParam >> 30) & 1但为什么要冒险呢?

于 2011-05-30T12:59:26.290 回答