000
05.04.2004, 11:30 Uhr
~vc_newby
Gast
|
moin, Ich hab da ein Problem, auf das ich schon sehr oft im Netz gestoßen bin, auf das ich aber bisher noch keine vernünftige Lösung gefunden habe. Ich möcht mittels cprintdlg einige Steuerelemente meines Dialoges drucken. Das funzt auch schon ganz gut, nur leider erkennt er keine Zeilenwechsel innerhalb der Steuerelemente. Egal ob ich \r\n oder nur \n benutze.
mein Code sieht folgendermaßen aus:
C++: |
void Auswertdialog::OnOK() { UpdateData(TRUE);
//////////////////////////////////////////////////Drucken///////////////// // TODO: Zusätzliche Prüfung hier einfügen // Ein CPrintDialog-Objekt konstruieren
CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);
if (dlgPrint.DoModal()==IDOK) { // Den Drucker-DC vom Dialogfeld mit einem // CDC-Objekt verbinden CDC dcPrint; dcPrint.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;
// Ausdruck des Dokuments starten if (dcPrint.StartDoc(&myPrintJob)>=0) {
// Eine Seite beginnen dcPrint.StartPage();
// Zeichnen beginnen dcPrint.TextOut(1800,0,"Auswertungsprotokoll"); dcPrint.TextOut(1800,100,"--------------------");
dcPrint.TextOut(0,300, m_strauswert1); dcPrint.TextOut(2500,300, m_strauswert2); dcPrint.TextOut(3500,300, m_strauswert3);
// Seite auswerfen dcPrint.EndPage();
// Dokument schließen dcPrint.EndDoc(); }
// Druckergerätekontext löschen dcPrint.DeleteDC(); }
// Mit Standardverarbeitung von OnOK fortfahren
CDialog::OnOK(); }
|
m_strauswert sind einfache textfelder eines Dialoges, die mit mehrzeiligem Text gefüllt sind.
Vielleicht weiß ja jemand Rat.
Mfg
Carsten |