Enter in Edit-Feld abfangen
-
hi,
ich weiß, dass das bestimmt schon tausend mal gefragt wurde, aber ich kriegs einfach nicht gebacken:
Ich habe ein Edit-Feld und will, sofern Enter gedrück wird, dass etwas geschieht.
Allerdings ist mein Problem, dass ich keine WM_CHAR nachrichten erhalte. Ich wollte in der WndProc einfach WM_CHAR abfangen, sofern es von meinem Edit kommt, allerdings erhalte ich diese nachricht nicht.
Also hab ich mal das Edit-Fenster gesubclassed...und es kommt auch kein WM_CHAR. Woran kann das denn liegen?
MfG, Herr-Vorragend
-
Wie wärs, wenn du WM_KEYDOWN abfängst?
-
das ging vorhin auch nicht. aber jetzt hab ich solange rumgemacht, bis es geht, ich glaub ich hab bei SetWindowLong irgendwas vermasselt.
-
Bei mir hats folgendermaßen funktioniert:
PrevWndProcEdit = SetWindowLongPtr (hwndEdit, GWLP_WNDPROC,(LONG_PTR) EditWndProc); LRESULT CALLBACK EditWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_KEYDOWN: switch(wParam){ case VK_RETURN: SendMessage(hWnd,WM_COMMAND,ID_SENDEN,NULL); break; } break; } return CallWindowProc ((WNDPROC) PrevWndProcEdit, hwnd, message, wParam, lParam); }wobei ID_SENDEN zu einem Button gehört
dort wird dann alles weiter verarbeitet