I am writing a Windows C++ app which I would like to have detect a keypress (for this example, using the letter ‘S’). When the key is pressed, the program should switch a bool value either on or off (depending on its current state).
I know that in console apps you can use cin.get, but I’m unfamiliar with the Win32 API. I also would like to be sure that when the key is pressed, the event is only registered once, i.e. if the user presses ‘S’ but holds the key down for a while, the program should detect only ‘S’; not ‘SSSSSSS’.
So you have a windows message loop going, right? Capture WM_KEYDOWN and check whether it’s on autorepeat.
But I’d guess you are actually using a framework, be it MFC, QT or something else. The framework will wrap your windows message loop and allow you to capture key events, but if you want us to tell you how, you’ll have to say what framework you’re using.