A
Das Programm soll ein paar Bitmaps drucken.
Die ID's zum Drucken sind bekannt.
der Kopf und der Fuß werden werden korrekt behandelt. Was mache ich aber bei den Bilder verkehrt?
void CKreuzungView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CKreuzungDoc* pDoc = GetDocument();
CBrush* oldBrush = memoryDC->SelectObject(brush);
ASSERT_VALID(pDoc);
CBitmap* bitmap_neu = new CBitmap;
CDC tmp_dcMemory;
tmp_dcMemory.CreateCompatibleDC(pDC);
if(pDoc->hv_karte_fertig==1)
{
PrintPageHeader(pDC); PrintPageFooter(pDC);
for(int k=1;k<=pDoc->hoehe;k++) {
for(int j=1;j<=pDoc->breite;j++) {
// pDC->Rectangle(pDoc->felder[k][j]->block_rechteck);
// pDC->SelectObject(pDoc->felder[k][j]->block_bild);
bitmap_neu->LoadBitmap(pDoc->felder[k][j]->block_bild_id);
tmp_dcMemory.SelectObject(bitmap_neu);
CString str;
//str.Format("Feld[%d][%d] mit ID:%d", k,j, pDoc->felder[k][j]->block_bild_id);
// MessageBox(str);
} }
} delete bitmap_neu;
CView::OnPrint(pDC, pInfo);
}
void CKreuzungView::PrintPageHeader(CDC *pDC)
{
CString str;
CPoint point(100, 200); // 10 Zoll nach unten gehen
CKreuzungDoc* pDoc = GetDocument();
str.Format("Name des Dokuments: %s", (LPCSTR) pDoc->GetTitle());
pDC->TextOut(point.x, point.y, str);
}
Die Funktion PrintPageFooter ermittelt das Datum und die Uhrzeit.