From 15a1c736b20b7eb1ad84d7041ff589c8271ccbdb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Thu, 3 May 2012 11:06:00 +0100 Subject: [PATCH] Quit on escape key. --- retrace/glws_wgl.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/retrace/glws_wgl.cpp b/retrace/glws_wgl.cpp index c7e84c3..c6e4a3f 100644 --- a/retrace/glws_wgl.cpp +++ b/retrace/glws_wgl.cpp @@ -64,6 +64,13 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { MINMAXINFO *pMMI; switch (uMsg) { + case WM_KEYDOWN: + switch (wParam) { + case VK_ESCAPE: + PostMessage(hWnd, WM_CLOSE, 0, 0); + break; + } + break; case WM_GETMINMAXINFO: // Allow to create a window bigger than the desktop pMMI = (MINMAXINFO *)lParam; @@ -72,6 +79,9 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) pMMI->ptMaxTrackSize.x = 60000; pMMI->ptMaxTrackSize.y = 60000; break; + case WM_CLOSE: + exit(0); + break; default: break; } @@ -324,7 +334,17 @@ makeCurrent(Drawable *drawable, Context *context) bool processEvents(void) { - // TODO + MSG uMsg; + while (PeekMessage(&uMsg, NULL, 0, 0, PM_REMOVE)) { + if (uMsg.message == WM_QUIT) { + return false; + } + + if (!TranslateAccelerator(uMsg.hwnd, NULL, &uMsg)) { + TranslateMessage(&uMsg); + DispatchMessage(&uMsg); + } + } return true; } -- 2.45.2