Probleme beim Scrollen
-
Hallo!
Ich habe beim Starten meines Programms das Problem, dass sich der Text im Ausgabefenster nicht scrollen lässt.
Versuche ich über die Scrollleiste den Text zu verschieben, wird der Ausgabetext verzerrt.
Kann mir jemand weiterhelfen?
-
Wie hast du denn den text ausgegeben?
Wie benutzt du die Scrollleisten, hast du eine WM_SCROLL nachricht abgefangen?
-
Ich habe ein RichEditView Projekt und gebe den Text in der View über die OnInitialUpdate-Funktion aus.
void COutputView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/) { // TODO: Fügen Sie hier Ihren spezialisierten Code ein, und/oder rufen Sie die Basisklasse auf. CRichEditCtrl &rCtrl = GetRichEditCtrl(); CDC* pDC=GetDC(); // Ausgabe des Ergebnis Files auf Bildschirm CString strZeile; // Auszudruckende Zeile CFont* pOldFont = (CFont*) pDC->SelectObject(&m_fontView); // Schrift dem Gerätekontext zuordnen for (long i = 0; i < m_pDoc->m_strarrInhalt.GetSize(); i++) // Ausdruck aller Zeilen { strZeile=m_pDoc->m_strarrInhalt[i]; // // Formatierungen herausnehmen if(!strZeile.IsEmpty()) { strZeile.Delete(0,1); // 1. Spalte löschen } //pDC->TextOut(m_nAbstLinksView, -i*m_nFontViewHeight-m_nAbstObenView,strZeile); //rCtrl.SetWindowText(strZeile + "\r\n"); rCtrl.SetSel(rCtrl.GetWindowTextLength(),rCtrl.GetWindowTextLength()); //RaCi_DiNa Zugfriff auf das Debug-Fenster rCtrl.ReplaceSel(strZeile + "\r\n"); //RaCi_DiNa Zugfriff auf das Debug-Fenster ///strZeile.Format(strZeile,"\n"); //rCtrl.SetSel(-1,-1); //rCtrl.ReplaceSel(strZeile.GetBuffer()); CRichEditCtrl &m_cRichEditCtrl = GetRichEditCtrl(); CSyntaxColorizer sc; //GetRichEditCtrl().LockWindowUpdate(); sc.AddKeyword("TITEL,EINSTELLUNG,WICKLUNG,SPANNUNG,ABMASSE,IMPEDANZEN,ENDE",RGB(255,0,0),3); sc.AddKeyword("debug=,Ns=,SStart=,SEnde=,m=,p=,q=,n1=,eps=,EZ=",RGB(0,0,255),4); sc.AddKeyword("DY=,PaSch=,Z2=,U=,f=,r=,Le=,Deltag=,Bs1=,Ls1=",RGB(0,0,255),4); sc.AddKeyword("Schraegung=,Bs2=,Lr=,Hn2=,Bo2=,Bu2=,Gamma2=,R1PH=",RGB(0,0,255),4); sc.AddKeyword("RR2=,RS2=,RS21=,LamN1=,LamS1=,LamN2=,LamN21=,LamS2=",RGB(0,0,255),4); sc.AddKeyword("GWP",RGB(255,0,0),5); sc.Colorize(0, -1, &m_cRichEditCtrl); } pDC->SelectObject(pOldFont); // Zurücksetzen der Schrift }
Den letzten Teil des Codes benutze ich um den Text farbig auszugeben.
Die Scrollleisten wurden über die ScrollView abgeleitet.
-
Übrigens funktioniert das Scrollen über die Tatatur, also mit den Bild auf u. Bild ab Tatsten einwandfrei.
Das selsame ist, dass ich mit der Maus nicht scrollen kann (mit dem Mausrad und über die Scrollleiste)