Focus auf Eingabefeld
-
Hallo Zusammen,
während der Zeicheneingabe in einem Editfeld, wird die Richtigkeit der Eingabe überprüft. Ist das Zeichen Falsch, wird es zurückgewiesen. Der Courser steht jedoch dannach am Anfang des Editfeldes und nicht nach dem letzten gültigen Zeichen. Könnt Ihr mir sagen, wie ich das prog. kann. Für Eure Hilfe vielen Dank.
PS Kurzer Einblick in den Quellcodevoid CSpiegelung_1Dlg::OnUpdateEditEingabe()
{
UpdateData(TRUE);if ( m_strEingabe.Right(1) <'A' || m_strEingabe.Right(1) >'ß')
{
m_strEingabe = m_strEingabe.Mid(0 , m_strEingabe.GetLength()-1);
UpdateData(FALSE);
}}
-
Vielleicht so:
((CEdit*)GetDlgItem(IDC_VONDEMEDITFELD))->SetSel(m_strEingabe.GetLength(), -1);
nach UpdateData(FALSE);
Und wenn es nicht klappt nach ein
GetDlgItem(IDC_VONDEMEDITFELD)->SetFocus();
davor.
-
Hat leider nicht gefunkt, jedoch Danke für Deine Hilfe Gruß Frank
-
Klar funktioniert das, habe es jetzt sogar extra ausprobiert...
-
Ich ahne, was du vorhast.
Guck mal bei Codeproject.com, du musst nämlich ein eigenes Editcontrol dafür schreiben. In dem guckst du dann, ob dir das Zeichen gefällt - wenn nicht ignorierst du es.
-
Dann ahne ich auch mal, und zwar dass das Cursor-Setzen nicht das eigentliche Problem war...

-
@isbeau: Könnte sein dass wir richtig liegen. Dann hatte er den falschen Ansatz.