Wieso nur ein schwarzer Fleck?
-
Hi ich möchte ein Bild, welches ich in den Ressourcen habe ausdrucken! (Es hat 256 Farben) Wenn ich es aber drucken will, sieht man auf dem Ausdruck nur ein schwarzes Rechteck!
Wieso ist das so?Hier der Code
CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this); if (dlgPrint.DoModal()==IDOK) { CDC dcPrint; dcPrint.Attach(dlgPrint.GetPrinterDC()); DOCINFO myPrintJob; myPrintJob.cbSize = sizeof(myPrintJob); myPrintJob.lpszDocName = "ADS"; myPrintJob.lpszOutput = NULL; myPrintJob.lpszDatatype = NULL; myPrintJob.fwType = NULL; if (dcPrint.StartDoc(&myPrintJob)>=0) { // Als Hilfe wie man bestimmte Parameter abfragt int te = dcPrint.GetDeviceCaps(ASPECTY); int test = dcPrint.GetDeviceCaps(ASPECTX); int m_iHorizont = dcPrint.GetDeviceCaps(HORZRES); int m_iVerdikal = dcPrint.GetDeviceCaps(VERTRES); int zeilenabstand; dcPrint.StartPage(); CBitmap bmp; //CBitmap bild; bmp.LoadBitmap(IDB_BITMAP1); CDC SpeicherDC; peicherDC.CreateCompatibleDC(&dcPrint); SpeicherDC.SelectObject( &bmp ); dcPrint.StretchBlt( 0, 0, 640, 200, &SpeicherDC, 0, 0, 100, 100, SRCCOPY ); dcPrint.EndPage(); //Seitenende dcPrint.EndDoc(); //Dokuementenende } dcPrint.DeleteDC(); //Druckauftrag löschen }Bitte helft mir!
Vielen Dank für die Antworten!
-
Ich habe etwas probiert und herausgefunden dass die Fukntion:
SpeicherDC.SelectObject( &bmp );nicht richtig ist! Diese schlägt fehl oder besser gesagt, wird nicht durchgeführt!
Kann mir hier niemand sagen, woran das liegt?
-
Such mal nach SetMapMode
-
Habe ich vorher eingefüt!
Sieht so aus:CBitmap bmp; CBitmap bild; bmp.LoadBitmap(IDB_BITMAP1); CDC SpeicherDC; SpeicherDC.CreateCompatibleDC(dcPrint); SpeicherDC.SelectObject(bmp); SpeicherDC.SetMapMode(MM_LOENGLISH); if(SpeicherDC.SelectObject(bmp)) { dcPrint->StretchBlt( 0, 0, 640, 200, &SpeicherDC, 0, 0, 100, 100, SRCCOPY ); }Aber beim "if" überspringt er immernoch den Rest!
Wieso ist das so?