2024-07-01 08:31:25 发布
网友
我今天尝试使用win32api,它只说如果按下了键,GetAsyncKeyState将返回1,否则返回0。你知道吗
但是当我用鼠标左键运行它时,它返回-32768? 我是通过打印命令找到的。 它没有破坏任何东西,因为我可以说如果leftmouse==-32768,但它仍然让我有点困惑。你能告诉我为什么吗?你知道吗
正如documentation所述:
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
GetAsyncKeyState
-32768为0x8000,表示高位已设置。与你描述的“我用鼠标左键运行它”相符。您按下按钮,这就是GetAsyncKeyState()报告的内容。无论你读到什么,说“GetAsyncKeyState将返回1如果按键或0如果没有”是错误的。你知道吗
GetAsyncKeyState()
上面写着:
If the most significant bit is set, the key is down.
有符号整数中最重要的位是符号位。因此,您可以将其理解为,如果键为down,则函数返回负值。你知道吗
您不应该测试== -32768,而应该测试< 0。你知道吗
== -32768
< 0
正如documentation所述:
-32768为0x8000,表示高位已设置。与你描述的“我用鼠标左键运行它”相符。您按下按钮,这就是
GetAsyncKeyState()
报告的内容。无论你读到什么,说“GetAsyncKeyState将返回1如果按键或0如果没有”是错误的。你知道吗上面写着:
有符号整数中最重要的位是符号位。因此,您可以将其理解为,如果键为down,则函数返回负值。你知道吗
您不应该测试
== -32768
,而应该测试< 0
。你知道吗相关问题 更多 >
编程相关推荐