GetKeyState () против GetAsyncKeyState () против getch ()?

В чем разница между нажатием клавиши:

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

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

12

Решение

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

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

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

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

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

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

16

Другие решения

Других решений пока нет …