Gewusst wie: Drucken ein Formulars, zu groß für den Bildschirm oder Seite

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 230502
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Die PrintForm -Methode druckt nur den Teil des Formulars, das angezeigt wird. Dieser Artikel beschreibt die ein Formular drucken, die entweder größer als der Bildschirm oder nur teilweise angezeigt.
Weitere Informationen
Wenn müssen Sie ein Formular drucken, die größer als der Bildschirm oder nur teilweise angezeigt, müssen die Steuerelemente im Formular in eine PictureBox platziert. Dies druckt die Bitmap, die in der PictureBox, anstatt eine Bildschirmaufnahme des Formulars selbst enthalten ist (die Funktionsweise von PrintForm ). Da die PictureBox Bitmap in einem Gerätekontext im Arbeitsspeicher gespeichert ist, müssen Sie Zugriff auf die gesamte Bitmap unabhängig davon, was angezeigt wird.

Hinweis: Für die Zwecke dieses Artikels wird die Höhe des Formulars auf 11 Zoll festgelegt. Gegebenenfalls ein anderes Papierformat wie z. B. 8.5 - X 14-Zoll, legen Sie die Variable sTall einen entsprechenden Wert, z. B. 14. Beachten Sie außerdem, dass diese Zuordnungen in Twips vorgenommen werden, da dies die Standardeinstellung Scalemode für Formulare ist. Wenn Sie die Scalemode ändern, müssen Sie diese Werte auch entsprechend ändern.

Drucken Sie ein Formular mit mehr als das Bild

  1. Starten Sie ein neues Standard EXE-Projekt in Visual Basic. Form1 wird standardmäßig erstellt.
  2. Fügen Sie zwei PictureBox zu Form1 hinzu.

    Vermeiden Sie die zweite PictureBox innerhalb der ersten Zeichnung, da dies also der zweiten PictureBox ein Mitglied der ersten macht. Setzen Sie stattdessen den Ausgangspunkt der zweiten PictureBox links von der Ursprungspunkt der ersten PictureBox.
  3. Klicken Sie mit der rechten Maustaste auf Picture2 , und wählen Sie in den Hintergrund .
  4. Fügen Sie zwei Bezeichnungen zu Picture1, Picture2 leer lassen.
  5. Fügen Sie den folgenden Code hinzu Abschnitt Allgemeine Deklarationen von Form1:
    Private Const twipFactor = 1440Private Const WM_PAINT = &HFPrivate Const WM_PRINT = &H317Private Const PRF_CLIENT = &H4&    ' Draw the window's client area.Private Const PRF_CHILDREN = &H10& ' Draw all visible child windows.Private Const PRF_OWNED = &H20&    ' Draw all owned windows.Private Declare Function SendMessage Lib "user32" Alias _   "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _   ByVal wParam As Long, ByVal lParam As Long) As Long   Private Sub Form_Load()   Dim sWide As Single, sTall As Single   Dim rv As Long   Me.ScaleMode = vbTwips   ' default   sWide = 8.5   stall = 11   ' or 14, etc.   Me.Width = twipFactor * sWide   Me.Height = twipFactor * stall   With Picture1      .Top = 0      .Left = 0      .Width = twipFactor * sWide      .Height = twipFactor * stall   End With   With Picture2      .Top = 0      .Left = 0      .Width = twipFactor * sWide      .Height = twipFactor * stall   End With   With Label1      .Caption = "Top"      .Left = Me.Width / 2      .Top = 0   End With   With Label2      .Caption = "Bottom"      .Top = (twipFactor * stall) - .Height * 2      .Left = Me.Width / 2   End With   Me.Visible = True   DoEvents   Picture1.SetFocus   Picture2.AutoRedraw = True   rv = SendMessage(Picture1.hwnd, WM_PAINT, Picture2.hDC, 0)   rv = SendMessage(Picture1.hwnd, WM_PRINT, Picture2.hDC, _   PRF_CHILDREN + PRF_CLIENT + PRF_OWNED)   Picture2.Picture = Picture2.Image   Picture2.AutoRedraw = False   Printer.Print ""   Printer.PaintPicture Picture2.Picture, 0, 0   Printer.EndDocEnd Sub					
  6. Führen Sie das Projekt aus.
  7. Der oben und unten sollte Beschriftungen in Ihren jeweiligen Positionen unabhängig davon, ob das Formular vollständig angezeigt wird.

Ein Formular auf mehr als einer Seite drucken

Wenn das Formular, das beim Drucken, auf einer Seite zu groß ist, können Sie die gleiche Weise wie im vorherigen Beispiel mit einer Nebenversion. Die PaintPicture -Methode hat eine Reihe von optionalen Parametern. Die Clipping Region Parameter können verwendet werden, nehmen Sie einen Teil der Bitmap und drucken.

Suchen Sie dazu den folgenden Code im vorherigen Beispiel:
Printer.Print ""Printer.PaintPicture Picture2.Picture, 0, 0Printer.EndDoc				
ersetzen diese drei Zeilen Code mit den folgenden:
Printer.Print ""Printer.PaintPicture Picture2.Picture, 0, 0, , , _   0, 0, , Picture2.Height / 2Printer.NewPagePrinter.PaintPicture Picture2.Picture, 0, 0, , , _   0, Picture2.Height / 2, , Picture2.Height / 2Printer.EndDoc				
für Abbildung zu erleichtern, unterteilt in diesem Beispiel wird lediglich das Formular in der Hälfte. Sie können den Ausschneidebereich entsprechend Ihren Anforderungen anpassen.

Hinweis : Visual Basic 6.0 Onlinehilfe besagt, dass PrintForm das gesamte Formular druckt, ob das gesamte Formular sichtbar ist oder nicht. Die Angabe ist fehlerhaft.
Informationsquellen
Weitere Informationen dazu Drucken von Formularen finden Sie folgenden Artikel der Microsoft Knowledge Base:
178076Verwendung von PictureBox zu Steuerelement Ausrichtung Drucken eines Formulars
161299Gewusst wie aufzeichnen und Drucken des Bildschirms, eines Formulars oder jedes Fensters
194580Gewusst wie: Drucken ein Bildes von einem RichTextBox-Steuerelement
146022Einrichten von RichTextBox-Steuerelement für den WYSIWYG-Druck
Visual Basic-Hilfe; Suche nach: "PaintPicture"

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 230502 – Letzte Überarbeitung: 12/05/2015 14:21:56 – Revision: 3.1

Microsoft Visual Basic 4.0 Standard Edition, Microsoft Visual Basic 4.0 Professional Edition, Microsoft Visual Basic 4.0 32-Bit Enterprise Edition, Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 6.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbnosurvey kbarchive kbmt kbcodesnippet kbhowto kbprint KB230502 KbMtde
Feedback