Habe ein Problem mit drucker Button
-
Hallo liebe Community
bin ein neuling im bereich der C++ Programmierung
Ich möchte gerne ein Formular Programmieren mit Drucker Button der sollte einwandfrei funktionieren doch da hängts folgenden code habe ich aus Coding Help übernommen:
void Termin::OnBnClickeddrucken() { CPrintDialog dlgPrint(FALSE, PD_ALLPAGES, this); // GetDefaults liefert den Standarddrucker // dlgPrint.GetDefaults(); if(dlgPrint.DoModal()==IDOK) { // Verbinden des Drucker-DC mit einem CDC-Objekt CDC dcPrint; dcPrint.Attach(dlgPrint.GetPrinterDC()); // DOCINFO-Struktur erzeugen (wird für Druck benötigt) DOCINFO Print; Print.cbSize = sizeof(Print); Print.lpszDocName = "Drucken im Dialog"; Print.lpszOutput = NULL; Print.lpszDatatype = NULL; Print.fwType = NULL; //Maße des druckbaren Bereiches des Papiers ermitteln (in 0,1mm) dcPrint.SetMapMode(MM_LOMETRIC); // Ausdruck des Dokuments starten if(dcPrint.StartDoc(&Print)>=0) { // Eine Seite beginnen dcPrint.StartPage(); // Überschrift ausgeben, dazu das Textfeld auslesen dcPrint.TextOut(900, -100, "Drucken im Dialog"); // Seite auswerfen dcPrint.EndPage(); // Dokument schließen dcPrint.EndDoc(); // Druckergerätekontext löschen dcPrint.DeleteDC(); } } else{ MessageBox("Fehler! Dokument konnte nicht gedruckt werden", "Fehler!", MB_ICONEXCLAMATION); } }
es funktioniert er druckt auch aber er gibt mir nur "Drucken im Dialog" aus
könnt ihr mir helfen wo und wie ich meine Text bzw eingabefelder angeben muss
damit er mir das Formular ausdruckt oder geht es vllt noch schneller?freundliche grüße Pat
EDIT (Martin): Code Tags ergänzt.
-
brauche hilfe schrieb:
...es funktioniert er druckt auch aber er gibt mir nur "Drucken im Dialog" aus...
Das ist ja auch die einzige Ausgabeanweisung, die du da machst. Beim Drucken muss man sich selbst kümmern was ausgegeben werden soll. Woher soll dein Programm wissen, was du drucken willst. Bei dialogfeldbasierten Anwendungen (und ich meine auch bei SDI-Anwendungen, die ein CFormView als Ansichtsklasse verwenden) gibts von Framework primär keine Vorbereitung dafür. Dafür ist z.B. das Beispiel bei coding-help, wo man sich selbst einen Druckdialog erzeigt und einen Gerätekontext (bei dir dcPrint) holt. Über diesen kannst du dann die Ausgabe steuern. Bei dir ist nur die eine Anweisung dcPrint.TextOut(900, -100, "Drucken im Dialog");
angelegt. Mit TextOut oder DrawText gibt man Texte aus, mit MoveTo und LineTo malt man Linien und für Bitmaps gibts da auch was.
Standardmäßig ist bei SDI- und MDI-Projekten aus Basis einen CViews die Druckfunktionalität vorgegeben und in diesem Falle nimmt man sich die OnDraw-Methode, die auch für die Bildschirmausgabe da ist.