RichEditBox Scroll Fehler

Karigos

Grünschnabel
Hallo,

ich habe folgendes Problem:

Ich möchte einen kleinen Chat realisieren...
Das hat auch soweit geklappt.

Nun wenn ich eine Message Recieve, wird diese in eine RichEditBox geschrieben...

Das funktioniert so weit auch ohne Probleme...

Nur sind es ja logischerweise bei einem Chat irgendwann mal zu viele Zeilen, die man ohne Scrollen anzeigen kann...

Deswegen wollte ich, dass die RichEditBox automatisch runterscrollt....

Dazu einiges vor weck:

Ich setze den Text der RichEditBox:

Code:
SetWindowText( Edit_ChatText, Mem );

Wobei hier in Mem der gesamte Text für die RichEditBox enthalten ist.

So danach ist ja alles erledigt also kommen wir zum Scrollen:

Code:
Line = SendMessage(Edit_ChatText, EM_GETLINECOUNT, 0, 0 );
SendMessage(Edit_ChatText, EM_LINESCROLL, 0, Line );

So danach sollte die RichEditBox ja immer zur letzten Zeile Scrollen... Denkt man...

Wenn nun die RichEditBox mit Text gefüllt ist und es ans Scrollen geht, Scrollt mir die RichEditBox komischerweise den gesamten Text eine gesamte Seite hoch, so weit, dass der gesamte Text + meine letzte Zeile aus dem Bild gescrollt ist...

Ich sehe dann nur noch eine Blanke RichEditBox mit einem Scrollbalken...

Wenn ich nun eine weitere Nachricht entfange, sehe ich diese als erste Zeile...
Bis das Bild wieder voll ist und er wieder hoch scrollt....
Wenn ich dann nebenbei mal auf den Scrollbalken Klicke, kommt plötzlich wieder der gesamte Text ins bild, als wenn ich einfach zu weit Scrollen würde was ja nicht sein kann, da er es ja sonst nach jeder Zeile machen müsste...

Weiß jemand, wie ich das Problem lösen kann?

Dazu muss ich noch sagen, dass das Scrollen genau so in einer EditBox ohne Probleme funktioniert!

Für jede Hilfe bin ich dankbar!

Für jeden der nicht verstanden hat was ich meine, der kann sich hier den Chat Client ansehen:
http://www.ratmod.de/Downloads/RatMod Chat Client.exe
 
Ohne gross zu testen, versuch doch mal ein WM_VSCROLL an die RichEdit zu senden:

SendMessage( hwndRichEdit, WM_VSCROLL, SB_BOTTOM, NULL );

Das müsste einfach immer bis ganz nach unten scrollen.
 
'lacht*

Na toll ich ideot *G* mit SB_LINEDOWN usw hab ichs versucht nur damit nicht :)

Es funktioniert wunderbahr :) Danke !
 
Zurück