Help_me Geschrieben 15. Juni 2006 Geschrieben 15. Juni 2006 Hallo, Habe da ein Problem... Also Ich bin dabei ein paar Dialoge zu schreiben wo natürlich auch Editcontrols eingebaut sind. Meine Frage ist,wie kann ich nach Eingabe eines zb: strings die Enter-Taste abfangen?danach soll auch sofort der neue Wert aus dem Editcontrol übernommen werden und das Editfeld soll außerdem den Focus verlieren!? Habe schon versucht mit dem WM_KEYDOWN Ereigniss etwas zu erreichen, aber auch hier wollte es nicht so recht funktionieren, da er gar nicht erst in die WM_KEYDOWN Funktion springt. Da ich nun etwas Ratlos bin hoffe ich das ihr mit weiterhelfen könnt. Danke im Vorraus. MFG Zitieren
moo_kuh Geschrieben 17. Juni 2006 Geschrieben 17. Juni 2006 Meine Frage ist,wie kann ich nach Eingabe eines zb: strings die Enter-Taste abfangen? Danach soll auch sofort der neue Wert aus dem Editcontrol übernommen werden und das Editfeld soll außerdem den Focus verlieren!? Habe schon versucht mit dem WM_KEYDOWN Ereigniss etwas zu erreichen Hallo, leider schreibst du nicht mit was du entwickelst bzw. unter was - aber.... Für den Dialog gibt es eine Methode die sich PreTranslateMessage() nennt, diese bekommt alle Windowsnachrichten als erstes, bevor überhaupt etwas passiert. In dieser musst du dann vergleichen ob der HWND mit der von der Edibox/Control gleich ist, dann kannst du mit WM_KEYDOWN arbeiten und überprüfen ob ein Enter erfolgt ist... Z.B. sieht es dann so aus: static BOOL Testdiag::PreTranslateMessage(MSG* pMsg) { switch( pMsg->message ) { case WM_KEYDOWN: switch( pMsg->wParam ) { case VK_RETURN: // Hier kommt jetzt dein Code für die Entertaste return FALSE; break; default: return TRUE; break; } } } Wenn du aus der Methode PreTranslateMessage TRUE zurückgibst wird der Dialog geschlossen und es findet keine weitere Verarbeitung statt... Zitieren
Help_me Geschrieben 17. Juni 2006 Autor Geschrieben 17. Juni 2006 Danke dir, ich werds mal einbauen und schauen obs funktioniert! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.