zeilenumbruch in eingabefeld

soeni1987

Mitglied
hallo,

ich hab ein problem und zwar wenn ich mit der winapi ein eingabefeld erzeuge kann ich ja definieren, das es mehrere zeilen akzeptieren soll. wenn ich jedoch im programm mehrere zeilen eintragen möchte, geht das micht. auch das steuerzeichen \n gibt nichts sinfolles aus, erst recht kein zeilenumbruch. wie macht man das also?
 
Wenn du einen Zeilenumbruch eingeben willst, musst du noch den Style ES_WANTRETURN verwenden.
Für das programmtechnische Füllen der Editbox gilt das von Teambeta Geschriebene.

Gruß
MCoder
 
Leider funktionier das nicht. Mein Eingabefeld sieht so aus (hab ES_WANTRETURN schon eingefügt):

Code:
                        hwndEdit17   = CreateWindow ( "edit", "",                                     //eingabefeld Notizen
                                                      WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | ES_WANTRETURN , 
                                                      x+850, y+100, 355, 430, hwnd, (HMENU)117, 
                                                      (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE), NULL);

so und meine Einfügefunktion sieht so aus:

Code:
  f = fopen(note, "a+"); //notizen auslesen

                        
            if(fread (acUser,1,255,f)){                //Notiz laden laden
            //acUser[strlen(acUser)-1] = 0;           //letztes zeichen löschen
            }
            
            std::string s = acUser;
            replace(s.begin(), s.end(), '\n', '\r'); 
            char* notiz = const_cast<char*>(s.c_str()); 
                        SetWindowText(hwndEdit17,notiz);  //notiz ausgeben                         
                        acUser[0]='\0'; 

                        

  fclose(f);

Wenn ich \n also den Zeilenumbruch in der Datei nicht ersetze erscheint das Zeichen | wenn ich es durch \r ersetze, erscheint das gleiche Zeichen. Wie muss ich es ersetzen oder wie soll ich den Text sonst ausgeben?

danke für eine Antwort.
 
Hi.
Wenn ich \n also den Zeilenumbruch in der Datei nicht ersetze erscheint das Zeichen | wenn ich es durch \r ersetze, erscheint das gleiche Zeichen.
So werden nicht-darstellbare Zeichen repräsentiert.
Wie muss ich es ersetzen oder wie soll ich den Text sonst ausgeben?
Du müßtest das Zeichen '\n' durch den String "\r\n" ersetzen.

Wenn es sich um eine Textdatei mit Windows Zeilentrennzeichen (CRLF) handelt, könntest du die Datei auch einfach im Binärmodus ("a+b") einlesen, dann bleiben die CRLF Zeichen nämlich erhalten.

Gruß
 
Zuletzt bearbeitet:
Zurück