Du bist nicht angemeldet.

Werbeanzeige

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

1

05.09.2004, 13:55

Eingabefelder - Scrollen

Hi,

ich schreibe momentan einen kleinen chat basierend auf den mfc und winsock. klappt bisher auch ganz gut.

momentan hänge ich an folgendem:
ich habe ein ausgabefeld vom typ CEdit. eine neue "nachricht" füge ich folgendermaßen hinzu:

Quellcode

1
2
3
4
5
6
7
8
9
// String zum Protokoll hinzufügen
void CMainDlg::AddStringToProt(CString strText)
{
    CString strProt;

    m_cEditProtokoll.GetWindowText(strProt);
    strProt = strProt + strText;
    m_cEditProtokoll.SetWindowText(strProt);
}


das allein scheint mir schonmal etwas umständlich. gibt es eine möglichkeit nen string einfach nur "dranzuhängen"??
das eigentlich problem ist allerdings, dass ich ja immer den kompletten text neu einfüge und somit immer die erste zeile gezeigt wird. wenn der auszugebende text mehr zeilen als das editfeld hat sollte aber die letzte zeile sichtbar sein, nicht die erste.
habe es schon mit CEdit::ScrollWindow() versucht. allerdings hatte das überhaupt keine auswirkungen...

chat gibts hier: http://www.herder-abi06.de/stuff/chat.zip


mfg dave

Nox

Supermoderator

Beiträge: 5 282

Beruf: Student

  • Private Nachricht senden

2

05.09.2004, 20:26

Ist zar winapi aber vielleicht hilfts: EM_REPLACESEL

Dave

Alter Hase

  • »Dave« ist der Autor dieses Themas

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

3

07.09.2004, 17:59

danke, allerdingst hilft mir das nicht wirklich weiter.... :-(
*SOS* *g*

CuTeX0r

Treue Seele

Beiträge: 174

Wohnort: Deutschland

  • Private Nachricht senden

4

07.09.2004, 18:35

also generell, um an den String das einfacher anhängen zu können gibts schon einige Möglichkeiten. Ich würde gar nicht erst mit GetWindowText hantieren, sondern deinem Edit feld einen CString zuweisen. Dann kannst du es z.b. so machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
void CMainDlg::AddStringToProt(const CString& txt)
{
    UpdateData();
    m_strProt += txt;
    m_strProt += "\n\r"; // newline nach text einfügen

    UpdateData(FALSE);
}


Um den Text zu scrollen gabs auch was, hatte ich glaub ich mal bei codeguru oder so gesehn.. ich such mal, kann bissi dauern, vllt find ichs ..

/edit: Probier mal LineScoll aus :) :huhu:

mfg cutu

Werbeanzeige