Bezeichnung des Druckjobs ändern
-
Ich habe eine SDI und möchte mit den MFC-Bordmitteln drucken. Das funktioniert soweit ganz gut. Allerdings kann der Benutzer über einen Dialog auswählen, was gedruckt werden soll. Damit möchte ich auch beim Eintrag in die Druckerwarteschlange verschiedene Bezeichner vergeben. Wie mache ich das? Standardmäßig wird ja immer der Dokumentenname eingetragen, der auch oben in der Fensterbezeihnung zu sehen ist. Diesen will ich aber auch nicht überschreiben.
-
Das einfachste wird folgender Hack sein.
Vor dem Drucken mit CDocument::SetTitle den Text ändern.
Alten Titel zuvor sichern.
Nach dem Drucken alten Titel wieder zurück.Alles andere wird aufgrund nicht vorhandener virtueller Funktionen im Drucken sher mühsam.
-
Martin Richter schrieb:
Das einfachste wird folgender Hack sein.
Vor dem Drucken mit CDocument::SetTitle den Text ändern.
Alten Titel zuvor sichern.
Nach dem Drucken alten Titel wieder zurück.Alles andere wird aufgrund nicht vorhandener virtueller Funktionen im Drucken sher mühsam.
Naja, genau das wollte ich ja umgehen. Es gibt ja viele Post zu "Drucken aus einer Dialogfeldanwendung" (z.B. hier: http://www.c-plusplus.net/forum/54057).
Dort wird ja immer eine DOCINFO-Struktur erzeugt, die dann dem DC mit StartDoc mitgegeben wird. Ich dachte, dass man irgendwie mit pInfo was machen könnte.
-
Schau Dir den Druck Code in CView an und Du kriegst das k<zensiert>...</zensiert>. Entescheide selbst.
Dort gibt es nichts wo man mit irgend einer Funktion in diesen Prozess eingreifen kann.
Ein Grund warum ich nochnie diesen Code benutzt habe...Fürmich erscheint der Weg, den ich Dir genannt habe gangbar, da Die UI sowieso nur single threaded ist dürfte es hier keine Nachteile geben, außer der Titel der Anwendung ändert sich evtl. kurz.
-
Martin Richter schrieb:
Schau Dir den Druck Code in CView an und Du kriegst das k<zensiert>...</zensiert>. Entescheide selbst.
Ja ich weiß. Wie machst du das denn? Ganz konkret hab ich eine SDI auf Basis eines CFormView, wo ja standardmäßig die ganze Druckerei nicht dabei ist. Das Programm steuert eine Maschine, bei der man einerseits die Produktionsdaten und andererseits die Einstelldaten ausdrucken können muss. Die Einstelldaten sind nur für die Einrichter verfügbar, der Rest für den Bediener. Vorgabe ist auch, dass es eine Seitenansicht geben soll/muss und man auch über einen PDF-Drucker drucken kann.
-
Ich arbeite zu 99% ohne Seitenansicht...
Ansonsten habe ich den Code fast zu 100% kopiert und neu geschrieben in eine eigene View Klasse... so viel ist es ja auch nicht...
-
Martin Richter schrieb:
Ich arbeite zu 99% ohne Seitenansicht...
Naja, genau das wird aber bei meinem Projekt gefordert und die MFC bietet es ja eigentlich auch (auf den ersten Blick) sehr komfortabel an.