Inhalt eines Editfeldes nach drücken der return - taste auslesen
-
Hallo,
ich möchte, nachdem der User Text in Edit Feld eingegeben und Enter gedrückt hat eine Methode aufrufen.
Weiss jemand wie ich das am besten anstelle?Danke....
-
kannst du in der KillFocus-Message machen
-
Danke für die schnelle Antwort,
aber so recht mag das nicht gehen, da ich den focus beim drücken der Entertaste ja nicht verliere. Ausserdem wird die Methode auch dann z.B aufgerufen wenn ich meine Applikation einfach nur beenden will.
Gibts denn keine bessere Alternative??
-
Hi,
du kannst es machen in dem du in der OnChange deinen String ausliest und schaust ob das letzte Zeichen ein \n ist.
void CDialog::OnChangeEdit() { UpdateData(true); if (!m_Edit.IsEmpty()) { int iLaenge = m_Edit.GetLength(); if ( m_Edit[iLaenge - 1] == '\n') { m_Edit.TrimRight("\r\n"); UpdateData(false); } } }
Geht natürlich nicht bei mehrzeiligkeit!!
-
und bei "nicht-mehrzeiligkeit", wie es so schön formuliert ist, kannst du dir nen button mit DEFAULT-wert machen
-
Stichwort Subclassing
Du erstellst eine neue Klasse, die von CEdit erbt und reagierst dort auf WM_CHAR
-
Hab ich ausprobiert,
geht leider nicht da ein Drücken auf Enter das Ereignis auslöst bzw. die Methode onChange aufruft. Trotzdem danke...
Hat jemand noch ne Idee.
-
Hab mich wesentlich verschrieben,
geht leider nicht da ein Drücken auf Enter das Ereignis NICHT auslöst bzw. die Methode onChange NICHT aufruft. Trotzdem danke...
Hat jemand noch ne Idee.
-
-
Schau mal hier, das funktioniert, selber schon mal verwendet
http://www.codeproject.com/dialog/create_a_dialog.asp