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.919 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. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |