当我们在调试会话期间调用/粘贴“GetAsyncKeyState(Keys.F4)”进入VS2013的监视窗口时,它返回204996608.我查看了MSDN文档,但我无法弄清楚如何理解这个数字。它试图告诉我什么?
答案 0 :(得分:3)
来自http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx:
如果函数成功,则返回值指定自上次调用GetAsyncKeyState以来是否按下了键,以及该键当前是向上还是向下。如果设置了最高有效位,则键为关闭,如果设置了最低有效位,则在上一次调用GetAsyncKeyState之后按下该键。但是,你不应该依赖这最后的行为;有关更多信息,请参阅备注。
这意味着您需要检查最重要的位以查看是否按下了该键:
bool f4Pressed = (GetAsyncKeyState(Keys.F4) & (1 << 15)) != 0;
答案 1 :(得分:1)
GAKS返回一个短整数,即。 16位整数,是否设置了MSB。
因此,只需让您的返回类型正确,然后测试它是否为负。