Zeilen anhängen im Textfeld(Edit Controll)



  • Hallo alle zusammen,

    ich wollte mal fragen, ob man in einem Edit Controll mehrere Zeilen untereinander ausgeben kann, ohne dass die erste Zeile immer wieder neu
    überschrieben wird.
    Momentan gebe ich den Text aus mit der Funktion:

    SetDlgItemText(IDC_EDIT1,"Hallo Welt");
    

    und wenn ich hier sowas habe:

    SetDlgItemText(IDC_EDIT1,"Hallo Welt");
    Sleep(2000);
    SetDlgItemText(IDC_EDIT1,"und hallo hallo!!!");
    

    dann gibt er auch nur die zweite Zeile aus ohne die erste überhaupt angezeigt zu haben.
    Das ganze unter MFC.

    Bzw. kann ich mit dem Befehl: SetDlgItemText auch was in eine ListBox schreiben ???

    Big thx im voraus

    Slawo


  • Mod

    Du kannst EM_SETSEL verwenden um den Cursor hinter das letzte Zeichen zu setzen. Dann mit EM_REPLACESEL den entsprechenden Text anhängen.

    SetDlgItemText funktioniert nicht auf Listcontrls oder Listboxen, bzw. das hat keinen sichtbaren Effekt.



  • Danke erstma für deine Antwort, weiß aber leider nicht genau wie ich die Befehle einsetzten muß, vielleicht gibst du mir noch ne kleine Starthilfe .

    Wäre echt nett. 😃

    BIG THX

    Slawo



  • Ja wen Treff ich denn hier!? Willkommen!


  • Mod

    Slawo schrieb:

    Danke erstma für deine Antwort, weiß aber leider nicht genau wie ich die Befehle einsetzten muß, vielleicht gibst du mir noch ne kleine Starthilfe .

    Nachfolgenrder Code ist nicht durch einen Compiler gelaufen.

    // m_edCtrl ist ein multiline CEdit control 
    for (int i=0; i<10; ++i)
    {
        CString strText;
        strText.Format(_T("Zeile %d\r\n",i+1);
        int iLen = m_edCtrl.GetWindowTextLength();
        m_edCtrl.SetSel(iLen,iLen);
        m_edCtrl.ReplaceSel(strText);
    }
    

  • Mod

    Jochen Kalmbach schrieb:

    Ja wen Treff ich denn hier!? Willkommen!

    Danke... Ich wollte mir dasganze hier mal ansehen, man muss ja wissen wo sich seine Kollegen so rumtreiben... <bg>


Log in to reply