tastatureingaben empfangen und auswerten
-
jaa ok, nun hab ich
GetAsyncKeyState(VK_UP) // oder VK_... wie auch immernun möchte ich das aber abfragen..
if (GetAsyncKeyState(VK_UP)) { // irgendwas machen... }da üassiert aber nicht, da das programm immer vorzeitig beendet wird...
-
mit einer while-schleife, okay hat sich erledigt.
Nun möchte ich aber Buchstaben wie:
a,b,c,..
A,B,C,..
mit benutzen, wie geht das?(GetAsyncKeyState(VK_A))nimmt er nich
undeclared identifier
-
Versuch mal GetAsyncKeyState('A')
in der MSDN gibts es eine liste der Virtual Keys anhand derer du einsehen kannst welche tasten mit VK bezeichnet sind.
-
so, Zur zeit löse ich as so
if (GetAsyncKeyState(VK_UP)) { // irgendwas machen }dann habe ich mir was durchgelesen und wollte es so lösen mit Hilfe "case":
case WM_KEYDOWN: switch (wParam) { case VK_UP: // Process the UP ARROW key. break; case VK_DOWN: // Process the DOWN ARROW key. break;dann leider is dann wede WM_KEYDOWN noch wParam deklariert, was muss ich machen?
-
Du mußt das in das Windows-API-Grundprogramm einbetten: Hier das Minimalst-Fenster-Programm
#include <windows.h> long _stdcall W(HWND t, unsigned int u, WPARAM v, LPARAM w) { if (u == WM_DESTROY) PostQuitMessage(0); return DefWindowProc(t, u, v, w); } int _stdcall WinMain(HINSTANCE d, HINSTANCE e, char *f, int g) { WNDCLASS a; memset(&a, 0, sizeof(a)); a.lpfnWndProc = W; a.lpszClassName = "a"; RegisterClass(&a); HWND b; b = CreateWindow("a", 0, WS_SYSMENU | WS_THICKFRAME, 0, 0, 0, 0, 0, 0, 0, 0); ShowWindow(b, SW_SHOWNORMAL); MSG c; while(GetMessage(&c, 0, 0, 0)) DispatchMessage(&c); return 0; } /* WS_SYSMENU: SystemMenu (Verschieben, Schließen) und Button Schließen [X] */ /* WS_THICKFRAME: Änderung von Breite und Höhe */ /* Ohne PostQuitMessage oder WS_SYSMENU: Programm mit dem Taskmanager beenden */
-
Nenene, ist doch besser mit GetKeyboardState zu lösen...So:
// ... case WM_CHAR: { BYTE byKeyTab[256]; GetKeyboardState(byKeyTab); if((byKeyTab[VK_CONTROL] & 0x80) && (byKeyTab['A'] & 0x80)) // [Strg] + [A] gedrückt // usw. } break; // ...
-
@keksekekse: Hä?!, Was soll der Post denn ? Der passt irg.-wie überhaupt nicht
.
-
supersass1 schrieb:
dann leider is dann wede WM_KEYDOWN noch wParam deklariert, was muss ich machen?
Das war die Antwort auf sassens Frage.
Wenns nicht passt, wird es halt passend gmacht...
-
ich habe das jetz so gemacht:
int i = 0; while (i==0) { Sleep(100); if (GetAsyncKeyState('A')) { // was amchen } }doch nun müsste ich das ja für jeden Buchstaben einzelnd machen, wie kann ich das verallgemeinern?!
-
supersass1 schrieb:
ich habe das jetz so gemacht:
int i = 0; while (i==0) { Sleep(100); if (GetAsyncKeyState('A')) { // was amchen } }doch nun müsste ich das ja für jeden Buchstaben einzelnd machen, wie kann ich das verallgemeinern?!
Ich habs dir doch 'verallgemeinert'
.