ScrollView mit mehreren Seiten drucken
-
Hi
Ich möchte eine ScrollView die sich über mehrere Seiten erstreckt drucken. Ich habe dazu ein Beispiel mit einer normalen View aus einem Buch abgeändert. Sobald ich jedoch eine ScrollView anstelle der View verwende wird auf jeder Seite nur der Anfang gedruckt (Als wäre der Ursprung falsch gesetzt).
Das Programm zeichnet Rechtecke untereinander:
void CRechtView::OnDraw(CDC* pDC){ CRechtDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDC->SetMapMode(MM_LOENGLISH); CString s; s.Format("%d", pDoc->m_numRects); pDC->TextOut(300, -100, s); for(int x=0; x<pDoc->m_numRects; ++x){ pDC->Rectangle(20, -(20+x*200), 200, -(200+x*200)); } }
Die folgenden 2 Programmstücke habe ich eingefügt:
void CRechtView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo){ CRechtDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pInfo->SetMaxPage(2);}
void CRechtView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo){ if(pDC->IsPrinting()) { int pageHeight = pDC->GetDeviceCaps(VERTRES); int originY = pageHeight * (pInfo->m_nCurPage - 1); pDC->SetViewportOrg(0, -originY); } CScrollView::OnPrepareDC(pDC, pInfo); }
Bei einer normalen View funktioniert dieser Code einwandfrei. Für eine ScrollView reicht er wohl nicht aus. Was fehlt in meinem Code noch?