Net-srac Geschrieben 22. Januar 2002 Teilen Geschrieben 22. Januar 2002 Hi Freaks , **EDIT** ES GEHT UM VISUAL C++ 6.0 **/EDIT** also, ich hab jetzt mal eine Verständnissfrage zum Thema mehrseitiges Drucken. Also bis jetzt habe ich einfach mit dem Assistent eine Anwendung erstellt. Der hat mir dann auch die standard klassen eingebaut. So, nun habe ich meinen Code immer in OnPrint() geschrieben. Allerdings kommt er da drin nicht klar mit mehreren Seiten. Wenn ich drucken will schreibt er mir dann alles auf die erste Seite und überschreibt sie. (also er schreibt dann über den unteren rand) trotzdem ich mit startpage und endpage neue Seiten anlege wenn die Zeilen sie Blattgröße überschreiten. Nun hab ich in der MSDN gelesen wie man es machen soll. Allerdings komm ich damit nicht richtig klar. Also sie schreiben da, das in OnPrepareDC() festgelegt wird was auf die Seiten gedruckt wird, damit mein Drucker z.B. weiß wie viele Seiten er drucken muß. Kann mir einer von euch das nochmal erklären? Ich versteh das absolut nicht, und sitze schon seid letzten Donnerstag dran. Danke für eure Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mst Geschrieben 22. Januar 2002 Teilen Geschrieben 22. Januar 2002 Vielleicht kann ich dir ja helfen. Das Drucken hat mir der Funktion OnPaint() erstmal nicht zu tun. Die Gemeinsamkeit besteht darin, das beides Drucken und OnPaint() über ein Device Context laufen. That's it. Zum Drucken mußt du in einer Funktion ein DC mit einem der folgenden Funktionen erstellen: CPageSetupDialog::CreatePrinterDC(...), CPrintDialog::CreatePrinterDC(...) oder CWinApp::CreatePrinterDC(...). In Views sollte man zum Drucken die Funktion OnDraw(...) verwenden. Einen Druck startet man mit dem Aufruf der Funktion CDC::StartDoc(...). Eine Seite startet man mit der Funktion CDC::StartPage (...). Der Aufruf von StartPage(...) ist nur notwendig, wenn man mehrere Seiten drucken will. Nun wird ganz normal wie in OnPaint(...) auf dem Drucker ausgegeben, z.B. mit CDC::LineTo(...). Die Seite wird mit CDC::EndPage(...) beendet. Sollen weitere Seite muß wieder CDC::StartDoc(...) aufgerufen werden. u.s.w. Der Druck wird beendet mit der Funktion CDC::EndDoc(...). Ich hoffe das ich dir helfen konnte, auch wenn ich nicht auf die Parameter der Funktionen eingegangen bin. Aber mit der MSDN sollte das nun kein Problem sein. Gruß mst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mst Geschrieben 22. Januar 2002 Teilen Geschrieben 22. Januar 2002 Noch ne Anmerkung: Die Größe des Papiers etc. wird mit der DEVMODE-Struktur eingestellt. Oder wenn der Benutzer die Größe verändern soll, dann bietet sich der Std-Dialog CPrintDialog an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 23. Januar 2002 Autor Teilen Geschrieben 23. Januar 2002 Also das ist dann doch schon ziemlich komplex, weil 1. Ich hab keinen Drucker nur den Treiber von dem Drucker installiert auf dem es später laufen soll. Aber die Seitenansicht sollte mir ja reichen oder? 2. Werden meine Seiten durch jede Menge Schleifen generiert und ich hab nun keine Ahnung wo (also in welcher funktion) ich was generieren muß. Vielleicht könnte ich ja meinen Code mal in vereinfachter Form posten und du schreibst wohin welcher teil gehört??? Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mst Geschrieben 23. Januar 2002 Teilen Geschrieben 23. Januar 2002 Original geschrieben von FaFo 1. Ich hab keinen Drucker nur den Treiber von dem Drucker installiert auf dem es später laufen soll. Aber die Seitenansicht sollte mir ja reichen oder? Ja, eigentlich sollte die Seitenansicht reichen. Dort wird alles so ausgegeben wie auf dem Drucker 2. Werden meine Seiten durch jede Menge Schleifen generiert und ich hab nun keine Ahnung wo (also in welcher funktion) ich was generieren muß. Vielleicht könnte ich ja meinen Code mal in vereinfachter Form posten und du schreibst wohin welcher teil gehört??? See PM Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.