Warum funktioniert das nicht.
-
LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam) { switch(message) { case WM_KEYDOWN: switch (wparam) { case VK_ESCAPE: DestroyWindow(hwnd); break; } case WM_CLOSE: case WM_DESTROY: { bRunning = false; PostQuitMessage(0); return 1; }break; default:break; }//switch return (DefWindowProc(hwnd, message, wparam, lparam)); } // WindowProc
Das Programm soll bei ESC beendet werden. Doch das Programm wird bei jedem Tastendruck beendet. Ich blick nicht mehr durch.
-
LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam) { switch(message) { case WM_KEYUP: switch(wparam) { case VK_ESCAPE: DestroyWindow(hwnd); break; } return 0; case WM_DESTROY: { bRunning = false; PostQuitMessage(0); } return 1; } return( DefWindowProc(hwnd, message, wparam, lparam) ); }
-
...
case WM_KEYDOWN:
switch (wparam)
{
case VK_ESCAPE:
DestroyWindow(hwnd);
break;
}
break;
...jetzt gehts. Vorher ist er bei jeden Tastendruck nach WM_DESTROY gehüpft, weil du das break vergessen hast.
-
Absolut überflüssig, Herr Illuminator!
-
Wenn eine Anwendung WM_DESTROY empfängt, sollte sie 0 und nicht 1 zurückgeben.