What\'s the difference between getting a key press with:
GetKeyState()
GetAsyncKeyState()
getch()
?
Think what async means.
GetAsyncKeyState()
gets the key state asynchronously, i.e., without waiting for anything, i.e. NOW.
GetKeyState()
gets the key state synchronously, it is the key state of the key that you are about to read with getch()
. It is queued in the keyboard buffer along with the keypresses themselves.
As an example, imagine the following has been typed, but hasn't yet been read:
GetAsyncKeyState()
will return ctrl pressed
GetKeyState() will return
H presseduntil you call
getch()`
GetKeyState()
will then return I pressed
until you call getch()
GetKeyState()
will then return shift pressed, 1 pressed
until you call getch()
, which will return !
(result from pressing shift+1)
GetKeyState()
will then return ctrl pressed