Вызовов getkeystate() и GetAsyncKeyState() и функцией getch()?

в чем разница между получением нажатия клавиши с помощью:

  • GetKeyState()
  • GetAsyncKeyState()
  • getch()?

когда я должен использовать один над другим?

1 ответов


GetKeyState () и GetAsyncKeyState () являются специфичными для Windows API, в то время как getch () работает на других не специфичных для Windows компиляторах C.

GetKeyState () возвращает статус ключа из очереди сообщений потока. Состояние не отражает состояние уровня прерывания, связанное с оборудованием.

GetAsyncKeyState () указывает, была ли нажата клавиша С момента последнего вызова GetAsyncKeyState(), и является ли ключ сейчас или вниз. Если старший значащий бит установлен, клавиша вниз, и если младший значащий бит установлен, клавиша была нажата после предыдущего вызова GetAsyncKeyState().

на практике я видел, что если вы держите нажатой клавишу и назначаете поведение при нажатии клавиши, если вы используете GetKeyState(), поведение будет вызываться больше раз, чем если бы вы использовали GetAsyncKeyState().

в играх, я предпочитаю использовать GetAsyncKeyState().

(вы также можете проверьте более подробную информацию в блоге MSDN).