Cursor Position im Editfeld vorgeben ...



  • Hallo Leutz,

    ich habe das Problem, dass ich bei der "OnChange..." Methode zu einem Editfeld vorgeben möchte, an welcher Position sich der Cursor nach der Änderung befindet.
    Hört sich komisch an ... ich weiss 😉

    Doch macht es Sinn, wenn Ihr wisst, dass ich in der OnChange überprüfe, ob der CString in meiner Editbox mehr als 2 Nachkommastellen hat. Ich muss einen Doublewert als CString eingeben (fragt bitte nicht warum ... zu kompliziert! 🙄 ). Daher dieser ganze Murks. Nur hat der Bediener mehr als 2 Nachkommastellen, so soll diese Änderung im Editfeld wieder Rückgängig gemacht werden. Doch genau dadurch wird der Cursor an die erste Position zurückgestellt.
    Das ist aber leider nicht wirklich toll!!!!

    Hat wer eine Ahnung wie ich das realisieren könnte?

    Ach so: Diese Methode habe ich in der MSDN gefunden, doch leider weiss ich nicht wie man mit den Werten des POINT (so heißt die Struktur) die Position im Editfeld angibt.

    Danke im Voraus!!
    Günni



  • Hallo,
    das problem habe ich auch aber ich habe es jetzt nur soweit das der cursor am ende des editfeldes stecht.
    möchtest du das haben.

    MFG TaccoGo



  • das wäre doch schonmal ein Anfang!!

    THX!!



  • also wen du wiest an welche stele genau in string soltest du das damit schafen.

    int nLaenge = m_ausg.GetLength();        // Textlänge bestimmen 
    SetDlgItemText(IDC_Ausgabe, m_ausg);       // den neuen Text in das Editfeld schreiben 
    m_ausg_c.SetSel(nLaenge+1, nLaenge+1);// wen du hir werte für deine punkt im text angibs müste es gechen
    

    MFG TaccoGo



  • THX TaccoGo!!! (wenn ich Dir mit der Positionsbestimmung weiterhelfen kann ... lass es mich wissen)

    hier dann die komplette Lösung:

    int pos;
    	pos = m_Cmenge.FindOneOf(L",.");
    
    	if((pos < m_Cmenge.GetLength()-2) &! (pos == -1))
    	{		
    		m_Cmenge = m_Cmenge.Left(m_Cmenge.GetLength()-1);
    		UpdateData(false);
    		MessageBeep(0xFFFFFFFF);
    	}
    
    	m_CtrlMenge.SetSel(m_Cmenge.GetLength(), m_Cmenge.GetLength());
    

    Gruß
    Günni



  • Hallo Guenter Mies,

    ich wolten mit der scrollbar das editfeld auf die positipn wo ich zuvor wor bringen. da ich den text immer aktualisire sprinkt der cursor immer zum anfang das heist auch die scrollbar. deswegen spring ich zum ende. ich wies nicht wie ich im string die ungefere positon zur scrollbar bekomme.

    aber monentan bin ich auch mit der lösung am den cursor am ende zu habe zufriden. must dir keine umstände machen.

    MFG TaccoGo


Log in to reply