Что такое возвращаемое значение GetAsyncKeyState? - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь использовать GetAsyncKeyState в проекте, над которым я работаю. Единственная проблема в том, что я не знаю, какое значение он возвращает, и, в свою очередь, как это проверить. Согласно документации MSN :

Тип: КОРОТКИЙ

Если функция завершается успешно, возвращаемое значение указывает, была ли клавиша нажата с момента последнего вызова GetAsyncKeyState , и находится ли клавиша в данный момент вверх или вниз. Если задан старший значащий бит, клавиша нажата, а если задан младший значащий бит, клавиша была нажата после предыдущего вызова GetAsyncKeyState . Тем не менее, вы не должны полагаться на это последнее поведение; Для получения дополнительной информации см. Примечания.

Я знаю, что тип SHORT - это число, но я видел много разных ответов в StackOverflow и в Интернете, но каково возвращаемое значение GetAsyncKeyState, когда оно оценивается как true, возвращает 0 или 0x8001?

1 Ответ

0 голосов
/ 11 ноября 2018

Возвращаемое значение может быть одним из 4 возможных значений:

  • 0x0000
  • 0x0001
  • 0x8000
  • 0x8001

Используйте & 0x8000 (или, альтернативно, < 0, поскольку SHORT является типом со знаком), чтобы проверить, установлен ли «старший значащий бит» (что делает тип со знаком отрицательным).

Используйте & 0x0001, чтобы проверить, установлен ли «младший значащий бит».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...