Von Feld zu Feld springen??



  • Der Titel is zwar nich sehr aussagekräftig aber ich habe folgendes Problem, ich habe eine Anwendung mit meherern aufeinanderfolgenden Eingabefeldern. Wie bekomme ich es hin das der Cursor automatisch zum nächsten Feld springt wenn das gerade benutzte Feld voll is(sind alles CStrings mit max 2 bzw 4 Zeichen).
    THX 4 ALL Help



  • Schau dir mal SetFocus an.

    Devil



  • Hab ich mir mal angeschaut aber irgendwie passt da was nicht. Ich hab das so gemacht das ich dem Eingabefeld (IDC_ANFANGSJAHR) die Funktion EN_SetFocus gegeben habe und da hab ich das hier eingetragen:

    int m_iLaenge;
    m_iLaenge = m_sAnfangsjahr.GetLength();//Längenüberprüfung
    if (m_iLaenge == 4)
        GetDlgItem(IDC_ENDTAG)->SetFocus();//Neuen Fokus setzen
    

    Nur das funzt irgendwie nicht, was mache ich da falsch??



  • Du gibst deinem Editfeldern die Nachricht EN_CHANGE!

    Dort drin fragst du dann die Textlände ab!

    Wenn der Text lange genug ist dann rufe die Funktion SetFocus auf.

    MFG, Sigi

    PS: Deine Funktion (zur Nachricht EN_SETFUCUS) wird dann aufgerufen wenn dein Eingabefeld denn Fucus erhält (interessiert dich in deinem Fall aber überhaupt nicht 😉 ).

    Wenn du im Klassen-Assistenten eine Nachricht auswählst dann schreibt er dir unten eine Beschreibung zur Nachricht hin.


Anmelden zum Antworten