In this short snippet, I will show you a Win32 function that checks whether a button is pressed or not. The good thing is that you don't need to handle the WM_KEYDOWN message. The second advantage is that it is really easy to use and that it can be used everywhere in the code. Here is the function-definition:
SHORT GetAsyncKeyState( int vKey // virtual-key code );
vKey is the virtual key code of the keyboard or mouse button you want to test. GetAsyncKeyState(..) returns true if this button is pressed and false if not. I always use GetAsyncKeyState(..) for my games and demos because it can be used simply like this without a long message handle. Here is a little example how to use it:
void CheckKeyboard() { //Escape is down if (GetAsyncKeyState(VK_ESCAPE)) { PostMessage(hWnd,WM_CLOSE,0,0); } //Right mouse is down if (GetAsyncKeyState(VK_RBUTTON)) { //.. //Do something //.. } }
In this function, we will check what keys are down. You could now use this function in your main loop or somewhere else in your code. Here is a list of the most important virtual key codes:
Virtual Key Code | Corresponding key on the keyboard |
VK_ESCAPE | Escape |
VK_SPACE | Space |
VK_LEFT | Left Arrow |
VK_RIGHT | Right Arrow |
VK_UP | Up Arrow |
VK_DOWN | Down Arrow |
VK_SHIFT | Shift |
VK_CONTROL | Control |
VK_LBUTTON | Left Mouse Button |
VK_RBUTTON | Right Mouse Button |
That's it! If you run into problems, simply m@il me. Happy Coding!