Device-Kontext / PrintDialog
-
Hallo Leute,
ich möchte mit meiner Methode den DeviceContext ansprechen, der soll ein Formular (siehe Code) ausdrucken. Aber das "Gelumpe" will einfach nicht "funzen"!!!Der Drucker wird zwar angesprochen, ich kann auch den Drucker auswählen, aber ich sehe nur ein leeres weißes Blatt/Seitenansicht
!
Wer kann mir helfen?
void CSendOrder::SendPrinter() //Druckfunktion { CDC pDC; CPrintDialog printDlg(FALSE); // ask the user to select a printer if (printDlg.DoModal() == IDCANCEL) return; // Attach a printer DC pDC.Attach(printDlg.GetPrinterDC()); pDC.m_bPrinting = TRUE; // use Textmappingmode, that's easiest to map the fontsize pDC.SetMapMode(MM_TEXT); //pDC.SetMapMode(MM_LOMETRIC); // Angaben in 1/10 mm // Initialise print document details DOCINFO di; ::ZeroMemory (&di, sizeof (DOCINFO)); di.cbSize = sizeof (DOCINFO); // application title appears in the spooler view di.lpszDocName = "Hallo"; :confused: // Begin a new print job BOOL bPrintingOK = pDC.StartDoc( &di ); CPrintInfo Info; int w = pDC.GetDeviceCaps(HORZRES); int h = pDC.GetDeviceCaps(VERTRES); Info.m_rectDraw.SetRect(0,0, w, h); // Font setzen CFont font, *pAltFont; font.CreateFont(50, 0, 0, 0, 400, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Arial"); pAltFont = (CFont*)(pDC.SelectObject(&font)); // Wichtig: alten Font merken pDC.SetTextAlign(TA_LEFT | TA_BOTTOM); // Text linksbündig ausrichten pDC.BeginPath(); pDC.TextOut(200, -100,"Kunden-Nr.:" +m_kdnr); pDC.TextOut(200, -150,"" +m_name); pDC.TextOut(200, -200,"" +m_kdnr); pDC.TextOut(200, -250,"" +m_strasse); pDC.TextOut(200, -350,"" +m_plz +m_wohnort); pDC.TextOut(200, -450,"" +m_telefon); pDC.TextOut(200, -500,"" +m_fax); pDC.TextOut(200, -1000,"weißichnicht gmbh"); pDC.TextOut(200, -1050,"versandhandelsges.mbh"); pDC.TextOut(200, -1100,"Postfach 1111"); pDC.TextOut(200, -1200,"D-32423 Stemwede"); pDC.TextOut(2000, -1000,"Bestell-Fax: 0180-525 17 16"); pDC.TextOut(2000, -1050,"Bestell-Tel: 0180-525 17 16"); pDC.TextOut(2300, -1000,"(dtms/ 12 ct./min)"); pDC.TextOut(2300, -1050,"(dtms/ 12 ct./min)"); pDC.TextOut(1500, -2000,"Bestellung"); pDC.TextOut(1500, -2050,"__________"); pDC.TextOut(200, -2050,"Menge"); pDC.TextOut(300, -2050,"Best.-Nr."); pDC.TextOut(450, -2050,"Interp./Komp."); pDC.TextOut(1200, -2050,"Titel/Werk"); pDC.SetTextAlign(TA_RIGHT | TA_BOTTOM); pDC.TextOut(2500, -2050,"Einzelpreis"); pDC.TextOut(2800, -2050,"Gesamtpreis"); pDC.SetTextAlign(TA_LEFT | TA_BOTTOM); pDC.TextOut(200, -2100,""+m_dynbody); pDC.TextOut(1500,-3000,"SUMME:"); pDC.TextOut(2500,-3000,"EUR"); pDC.TextOut(3200,-3000,""+m_gessumme); pDC.SetTextAlign(TA_LEFT | TA_BOTTOM); pDC.TextOut(200,-4500,"Anmerkung"); pDC.TextOut(200,-4550,"Bitte schnellstmöglich liefern."); pDC.TextOut(200,-4600,"Vielen Dank."); pDC.TextOut(200,-4800,"Ich bestelle oben aufgeführte Artikel gegen Rechnung zu den aktuellen Versandbedingungen."); pDC.TextOut(200,-4950,"Datum:"); pDC.TextOut(200,-5000,"________________________________________________________________________________________________________"); pDC.TextOut(2300,-4950,"Unterschrift"); pDC.EndPath(); // end a print job if (bPrintingOK) pDC.EndDoc(); else // abort job. pDC.AbortDoc(); // restore font pDC.SelectObject(pAltFont); // alten Font zurücksetzen // free font memory //CFont.DeleteProject(); // detach the printer DC pDC.Detach(); };
[ Dieser Beitrag wurde am 18.10.2002 um 10:07 Uhr von Unix-Tom editiert. ]
[ Dieser Beitrag wurde am 18.10.2002 um 10:08 Uhr von chappa70 editiert. ]
-
-
Hallo Unix-Tom,
war das jetzt ne Frage oder eine Feststellung? Und wo bzw. an welcher Stelle baue ich deinen Vorschlag ein? (Sorry, aber ich bin Greenhorn im Programmieren!!!)
Thanks