mehrere zeilen im eingabe feld ausgeben



  • Also, ich hab in meinem programm zwei eingabefelder, das eine ist schreibgeschützt und dient zur ausgabe(edit1), das andere zur eingabe(edit2).

    wenn ich nun in edit2 was eintrage, und nen knopf drücke möchte ich, das das in edit1 in eine neue zeile geschrieben wird:

    void Chat::OnOK() 
    {
        char leer[]="\r\n";
        UpdateData(TRUE);
        if(!m_strEdit2)
            m_strEdit2=leer;
        sprintf(buffer,"%s\n%s",m_strEdit1,m_strEdit2);
    
        m_strEdit1=buffer;
        UpdateData(FALSE);
    
        //CDialog::OnOK();
    }
    

    so wie das da steht, wird aber anstatt einer neuen zeile nur ein schwarzer strich hingeschrieben.



  • SendMessage(), EM_SETSEL , EM_REPLACESEL , EM_SETSEL, EM_GETSEL und wenig guten willen...



  • Also einen String kopiert man nicht mit m_strEdit2=leer,
    sondern mit lstrcpy(m_strEdit2, leer).

    Ersetze mal

    m_strEdit2=leer;
    

    durch

    lstrcpy(m_strEdit2, leer);
    

    und

    m_strEdit1=buffer;
    

    durch

    lstrcpy(m_strEdit1, buffer);
    


  • @toom: drück dich mal etwas deutlicher aus

    @nappo: dann kommt:
    error C2664: 'lstrcpyA' : Konvertierung des Parameters 1 von 'class CString' in 'char *' nicht moeglich
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden

    error C2664: 'lstrcpyA' : Konvertierung des Parameters 1 von 'class CString' in 'char *' nicht moeglich
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden



  • Das ist VC++ mit MFC oder?

    void Chat::OnOK() 
    {
        UpdateData(TRUE);
        if(m_strEdit2.IsEmpty())
            m_strEdit2="\r\n";
        CString tmp;
        tmp.Format("%s\r\n%s",m_strEdit1,m_strEdit2);
        m_strEdit1=tmp;
        UpdateData(FALSE);
    }
    


  • Juhuuuuuuuu es klappt !!
    DANKE!!! 🙂 🙂

    hab aber noch ne frage: welche funktion wird beim öffnen eines dialogfensters aufgerufen, ich möchte das so machen, das nachdem das fenster geöffnet wurde eine schleife beginnt.

    [ Dieser Beitrag wurde am 30.10.2002 um 18:54 Uhr von TheDeath editiert. ]



  • Du bist im falschen Sub-Forum.

    Wenn du Fragen zu MFC hast solltest du im MFC mit dem Visual C++ Sub-Forum posten.


Anmelden zum Antworten