Drucken von Bitmaps führt zu Programmabsturz



  • Das Feld pDoc->felder[k][j] und clientRect besitzen gültige Werte.
    Wenn ich den Button zum Drucken bestätige, meldet die MFC Debug Assertation Failed bei der wingdi (bzw. afxwin).
    Wann ist an den nachfolgenden Code eigentlich falsch?

    void CKreuzungView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
    {
    	CKreuzungDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	CBrush* brush;
    	brush=new CBrush(RGB(255,255,255));
    	CDC * memDC;	
    	memDC= new CDC();
    	CBrush* oldBrush = memoryDC->SelectObject(brush);
    	memDC->SelectObject(oldBrush);
             CDC tmp_dcMemory;
             tmp_dcMemory.CreateCompatibleDC(pDC);
    		/*
    		Fehler
    		wingdi.cpp
    		afxwin
    
    		*/
    
    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++) 
    	{
    		memDC->Rectangle(pDoc->felder[k][j]->block_rechteck);
    		tmp_dcMemory.SelectObject(pDoc->felder[k][j]->block_bild);
    	memDC->StretchBlt(pDoc->felder[k][j]->block_rechteck.left,pDoc->felder[k][j]->block_rechteck.top,50*(pDoc->zoom),50*(pDoc->zoom),&tmp_dcMemory,0,0,50,50,SRCCOPY);
    		}
    pDC->StretchBlt(0,0,clientRect.Width(), clientRect.Height(),memDC,0,0,clientRect.Width(), clientRect.Height(),SRCCOPY);
    
    }
    
    delete bitmap_neu;
    delete brush;
    delete memDC;
    

Anmelden zum Antworten