Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Get up/down/left/right
- // Hopefully this works.
- #include <iostream>
- #include <windows.h>
- using std::cout;
- WORD getArrowKeyPress();
- int main()
- {
- cout << "Press an arrow key (or enter to quit) and I'll tell you what you pressed:" << std::endl;
- bool getMeOut = false;
- while (!getMeOut)
- {
- switch (getArrowKeyPress())
- {
- case VK_UP:
- cout << "\rUp "; break;
- case VK_DOWN:
- cout << "\rDown "; break;
- case VK_LEFT:
- cout << "\rLeft "; break;
- case VK_RIGHT:
- cout << "\rRight"; break;
- case VK_RETURN:
- getMeOut = true; break;
- default:
- cout << "?!?!?!?!";
- }
- }
- }
- WORD getArrowKeyPress()
- {
- HANDLE stdIn = GetStdHandle(STD_INPUT_HANDLE);
- DWORD blah; // Unused
- INPUT_RECORD ir; // Hmm, Spanish words...
- while (ReadConsoleInput(stdIn, &ir, 1, &blah))
- {
- FlushConsoleInputBuffer(stdIn); // Dunno if this is really needed
- if (ir.EventType != KEY_EVENT)
- continue;
- const WORD& keyCode = ir.Event.KeyEvent.wVirtualKeyCode;
- if (keyCode == VK_UP || keyCode == VK_DOWN ||
- keyCode == VK_LEFT || keyCode == VK_RIGHT ||
- keyCode == VK_RETURN)
- return keyCode;
- }
- return 1; // Dunno what else to return here
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement