DigitalRevolution
Mitglied
Hallo ich abbeite mit VisualStudio 7 an einem SDI Projekt und meine Ansichtsklasse ist von CScrollView abgeleitet.
Nun hab ich in diesem View sehr viel Text. Dementsprechend groß ist auch der Scrollbereich. Daraus ergeben sich zwei Probleme:
Zum besseren Verständnis mein Code:
Kann mir bitte jmd helfen

Nun hab ich in diesem View sehr viel Text. Dementsprechend groß ist auch der Scrollbereich. Daraus ergeben sich zwei Probleme:
- Das scrollen verläuft sehr langsam, wie kann ich das Scrollen optimieren?
- Auch wenn man nur kurz auf den Pfeil auf der scrolleiste drückt wird ein zu großer Abbschnitt gescrollt. Wie kann ich einstellen wieviel gescrollt wird?
Zum besseren Verständnis mein Code:
C++:
void CDctMainView::OnDraw(CDC* pDC)
{
CDctMainTxt txt;
if(IsFirstTime)
{
m_ptOldScrollPos.y=-1;
m_pDoc = GetDocument();//Zeiger auf Doc
IsFirstTime=false;
txt.LoadTxtD2L();
m_StrTxt=txt.m_strD2L;
}
SetScrollSizes(MM_TEXT,CSize(1000,450000));
m_ptScrollPos=GetScrollPosition();
CBitmap bg;
BITMAP bm;
bg.LoadBitmap(IDB_PAPIER);//BITMAP laden
bg.GetObject(sizeof(bm),&bm);
CDC speicherDC;
speicherDC.CreateCompatibleDC(pDC);
speicherDC.SelectObject(&bg);
RECT rect;
GetClientRect(&rect);
pDC->StretchBlt(0,m_ptScrollPos.y,rect.right- rect.left,rect.bottom,&speicherDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
.....//Font erstellen und selektieren
RECT myrect;
.....//myrect initialisiern
pDC->DrawText(m_StrTxt,&myrect,0);
if(m_ptScrollPos.y != m_ptOldScrollPos.y)//falls gescrollt wurde
{
RedrawWindow();
m_ptOldScrollPos.y=m_ptScrollPos.y;
IsChanged=false;
}
}
Kann mir bitte jmd helfen

