Der PrintForm-Befehl von VB hat einige Fehler. Er schneidet das Bild bei 640*480 Pixeln einfach ab. Außerdem werden einige Controls bei bestimmten Borderstyle-Einstellungen der Form nicht gedruckt. Daher habe schon vor Längerem nachfolgende Prozedur als Ersatz für die VB-eigene PrintForm-Anweisung geschrieben. Zunächst wird ein Screenshot der Form erstellt. Das Bild wird dann aus der Zwischenablage geholt und über das Printer-Objekt ausgedruckt. Option Explicit ' Benötigte API-Deklarationen Private Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Private Sub DruckeForm() Dim Bild As Picture Dim Faktor1 As Single Dim Faktor2 As Single Dim Breite As Long Dim Höhe As Long Dim Korrektur As Long Me.MousePointer = 11 ' Zwischenablage löschen Clipboard.Clear ' Screenshot der aktuellen Form erstellen Call keybd_event(44, 0, 0, 0) DoEvents Call keybd_event(44, 0, 2, 0) ' Bild aus der Zwischenablage holen Set Bild = Clipboard.GetData(vbCFBitmap) Clipboard.Clear ' Ausdruck starten With Printer ' Papierformat .Orientation = vbPRORLandscape ' Farb-Einstellung .ColorMode = vbPRCMColor ' Maßeinheit auf Pixel festlegen .ScaleMode = vbPixels ' Breite und Höhe des Bildes in Pixel Breite = .ScaleX(Bild.Width, vbHimetric, vbPixels) Höhe = .ScaleY(Bild.Height, vbHimetric, vbPixels) ' Die Breite und die Höhe des bedruckbaren Bereiches wird zu ' groß angegeben (vermutlich Drucker und Druckertreiber abhängig) ' Deshalb der Wert Korrektur, damit das Bild vollständig gedruckt wird. Korrektur = 30 Faktor1 = (.ScaleWidth - Korrektur) / Breite Faktor2 = (.ScaleHeight - Korrektur) / Höhe If Faktor2 < Faktor1 Then Faktor1 = Faktor2 End If ' Bild an den Drucker schicken .PaintPicture Bild, 0, 0, Breite * Faktor1, Höhe * Faktor1 ' Ausdruck beenden .EndDoc End With Set Bild = Nothing Me.MousePointer = 0 End Sub Dieser Tipp wurde bereits 23.887 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |