PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB .Net] Form drucken, das ein Panel mit autoscroll enthält


ActionNews
2006-04-05, 13:27:54
Hallo,

Ich soll ein VB .Net Programm erweitern. Unter anderem soll dabei der Inhalt einer Windows Form augedruckt werden. Das ansich wäre kein Problem. Man kann ja ein Screenshot im Speicher machen und das Image dann drucken (wird z.b. hier beschrieben: http://www.vb-fun.de/dotnet/tipps/tip0084.shtml )

Nun habe ich aber das Problem, dass ich ein Form habe in dem ein Panel mit autoscroll funktion enthalten ist. D.h. der entahltenende Text/Steuerlemente nimmt von der höhe mehr Platz in Anspruch, als die Höhe der Form. Um alles zu sehen muss man also scrollen. Das bedeutet aber auch der Trick mit dem "screenshot" funktioniert leider nicht, da dort dann nur das momentan sichtbare gedruckt wird. Ich brauche aber den gesammten Inhalt des Panels.

Weder über google noch diverse Foren hab ich dazu etwas gefunden. Hat vielleicht von euch jemand nen Ansatz wie man da ran gehen kann?

CU Michael

Coda
2006-04-05, 13:36:54
Ich vermute dass du hier
BitBlt(dc2, 0, 0, Me.ClientRectangle.Width,Me.ClientRectangle.Height, dc1, 0, 0, SRCCOPY)Die Höhe und Breite gegen die virtuelle Größe der Form (also auch das nicht sichtbare) austauschen musst.

ActionNews
2006-04-05, 13:50:04
Soweit hab ich auch schon gedacht. Allerdings kann man es nicht größer machen als das was man auf dem Bildschirm sieht. Tut man es doch wird nicht der unsichtbare Teil des Panels gecaptured, sondern was man unter dem Panel sieht, also der Rahmen des Fensters und dann dahinterliegende Fenster bzw ein Ausschnitt des Desktops.

CU Michael

Railer
2006-04-05, 13:55:56
folgendes:

Wenn das Programm in diesem speziellen Fall funktionieren soll, dann kannst du vielleicht einfach das Fenster vergrössern, screenshot machen, wieder verkleinern, ausdrucken, was eine sehr unsaubere Methode wäre, aber generell kann ich dir sagen, dass das mit dem Screenshot keine zufriedenstellende Lösung ist. Abhängig davon, welche Auflösung eingestellt ist und wieviel diese unsichtbare Daten sind (seitenweise Text?) kann es durchaus sein, dass der gesamte Inhalt selbst auf einem maximierten Fenster nicht sichtbar ist, da hilft auch kein Screenshot. Ich würde die Daten auf der Form auf jeden Fall nicht als Screenshot ausgeben. Du sollst eher die Daten so ausdrucken, dass es ähnlich einem Screenshot aussieht (z.B. mit Report Tools).

Coda
2006-04-05, 14:05:57
Soweit hab ich auch schon gedacht. Allerdings kann man es nicht größer machen als das was man auf dem Bildschirm sieht. Tut man es doch wird nicht der unsichtbare Teil des Panels gecaptured, sondern was man unter dem Panel sieht, also der Rahmen des Fensters und dann dahinterliegende Fenster bzw ein Ausschnitt des Desktops.
Hä? Dann nimmt der Code aber den falschen DC oder son Quatsch. Muss mirs nochmal anschauen.

ActionNews
2006-04-05, 14:31:58
EDIT: Unsinn gelöscht :D