M
Hallo
meine Druckausgabe funktioniert nicht.
Der kommt mir ständig mit der Fehlermeldung, dass SelectObject nicht ausgeführt wurde
hier der gemaste druckcode
CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);
//dlgPrint.GetDefaults();
if (dlgPrint.DoModal() == IDOK)
{
CDC pDC_print;
// Den Drucker-DC vom Dialogfeld mit einem
// CDC-Objekt verbinden
pDC_print.Attach(dlgPrint.GetPrinterDC());
// Eine DOCINFO-Struktur erzeugen und füllen
DOCINFO myPrintJob;
myPrintJob.cbSize = sizeof(myPrintJob);
myPrintJob.lpszDocName = "MeinDruckAuftrag";
myPrintJob.lpszOutput = NULL;
myPrintJob.lpszDatatype = NULL;
myPrintJob.fwType = NULL;
pDC_print.SetMapMode(MM_LOMETRIC);
if (pDC_print.StartDoc(&myPrintJob)>=0)
{
// Eine Seite beginnen
pDC_print.StartPage();
CBitmap bmp;
if ( bmp.LoadBitmap(IDB_LOGO) == 0 )
MessageBox("Fehler bei Laden",NULL,MB_OK);
BITMAP bm;
if ( bmp.GetBitmap(&bm) == NULL )
MessageBox("Fehler2",NULL,MB_OK);
CDC sdc;
if ( sdc.CreateCompatibleDC(&pDC_print) == 0 )
MessageBox("Fehler",NULL,MB_OK);
if ( sdc.SelectObject(bmp) == NULL )
MessageBox("Fehler3",NULL,MB_OK);
const int nBreite = (int)(bm.bmWidth * 1.5);
const int nHoehe = (int)(bm.bmHeight * 1.5);
if ( pDC_print.StretchBlt(pDC_print.GetWindowExt().cx - nBreite, 0, nBreite, -nHoehe, &sdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY) == 0 )
MessageBox("Nicht gedruckt",NULL,MB_OK);
// Seite auswerfen
pDC_print.EndPage();
// Dokument schließen
pDC_print.EndDoc();
}
// Druckergerätekontext löschen
pDC_print.DeleteDC();
}
Wenn ich
[cpp]
SelectObejct(&)
[/cpp]
mache, macht er es aber auch nicht
ich weiß nicht, woran es liegt