# Zeilenumbruch



## KMX-Robin (30. März 2002)

Huhu,

Ich programmiere gerade ein Chat und habe zwei Probleme. 

1. Weiß ich nicht wie ich ein Zeilenumbruch in einem edit-Textfeld bekomme mit einem Message.
2. Gibt es keine Scrollleiste in meinem Feld...

So erstell ich die Felder.

hwndchat = CreateWindowEx(WS_EX_CLIENTEDGE,"edit", NULL, ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | WS_CHILD | WS_VISIBLE, 10, 10, rect.right-20,rect.bottom-70 , hwnd, (HMENU) 1, NULL, NULL);
hwndinsert = CreateWindowEx(WS_EX_CLIENTEDGE,"edit", NULL, ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE, 10, rect.bottom - 50,rect.right-100,19 , hwnd, (HMENU) 2, NULL, NULL);
hwndbut	= CreateWindow("button", "Senden",WS_CHILD | WS_VISIBLE | ES_LEFT, rect.right-80 , rect.bottom-50, 70, 20, hwnd, (HMENU) 1,NULL, NULL) ;


und so speichere ich den text aus dem 'hwndinsert' textfeld in dem 'hwndchat' textfeld ... 

ilen1 = SendMessage(hwndchat, WM_GETTEXTLENGTH, 0, 0);
buf1 = new char[1000+1];
SendMessage(hwndchat, WM_GETTEXT, ilen1+1, (long)buf1);

ilen = SendMessage(hwndinsert, WM_GETTEXTLENGTH, 0, 0);
buf = new char[ilen+1];
SendMessage(hwndinsert, WM_GETTEXT, ilen+1, (long)buf);

strcat(buf1,buf);
strcat(buf1,"\n\n");
SendMessage(hwndchat,WM_SETTEXT,1,(long)buf1);

Später soll das natpürlich über WinSock laufen ..dies hier dient nur als test.

Gruß robin


----------



## Xeragon (30. März 2002)

Hmm, also die folgenden Dinge dürften dir nützlich sein:

(HMENU)1, (HMENU)2 ... was zum teufel soll das?? sollen das die IDs sein? Wenn ja, dann -> sofort als Konstanten definieren.

Ein Instance-Handle bei CreateWindowEx() wäre zwecks Win9x ebenfalls nützlich.

Wg. Scrollbars: Du könntest mal versuchen sie im Flag anzugeben 
(WS_VSCROLL, WS_HSCROLL).

und buf1 = ... sollte vermutlich

buf1 = new char[ilen1+1]; 

heißen.

WPARAM (3.Argument) muss bei WM_SETTEXT 0 sein.
SendMessage(hwndchat,WM_SETTEXT,1,(long)buf1);

Edit Controls in Win32 verwenden <CR><LF> anstatt nur <LF> als Zeilenumbruchzeichen, um Text direkt aus Text-Files lesen zu können - um einen (harten) Zeilenumbruch zu erwirken musst du als \r\n verwenden (IIRC ist ein soft-break <CR><CR><LF> -> \r\r\n)


----------



## KMX-Robin (30. März 2002)

danke !!! Nun funst mein Chat .. YEAH  Ist zwar SEHR simpel, aber man kann zusammen chatten !!! *freu*

Hab da noch eine Frage .. Wenn ich einen Text eingebe den ich abschicken will, so muss ich bis jetzt immer noch auf den Button "senden" drücken damit die Nachricht übertragen wird. Jetzt wäre es nett, wenn man das mit 'Enter' realisieren könnte ... hat einer einen tipp von euch ? 

Gruß Robin


----------



## Xeragon (30. März 2002)

DialogBox mit Defaultbutton

(ansonsten musst das ganze subclassen, wenn ich mich recht erinnere)


----------

