Screenshot einer Form OHNE RAND speichern

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Yogibär.

    Screenshot einer Form OHNE RAND speichern

    Hallo zusammen,

    ich sitze vor einem Problem, bei dem ich nicht weiter weiss.

    Mein Vorhaben:

    Mein Programm erstellt Maßbilder aus Einzelteilen, entsprechend was ausgewählt wurde.
    Da die Anzahl der Variationen enorm ist, muss ich es mit Einzelbildern "zusammenbauen".
    Es werden einfach Pictureboxen erstellt und aneinandergereiht.

    Das funktionert alles super.

    Zum Abschluss möchte ich einen Screenshot von der Form erstellen und als Bild abspeichern.

    Ich habe das Ganze mit folgender Anleitung versucht [VB6].
    Das Problem hierbei ist, dass hier der Rand der Form mit aufgenommen wird.

    Gibt es eine Möglichkeit den Rand temporär auszublenden und nach dem Screenshot wieder einzublenden oder geht es auch irgendwie anders?

    Über eure Hilfe würde ich mich sehr freuen.

    Gruß und danke
    Yogibär
    @Yogibär Willkommen im Forum. :thumbup:
    Ist das Programm, von dem Du einen Screenshot erstellst, von Dir?
    Ggf. ist es einfacher, den Rand von der fertigen Bitmap einfach abzuschneiden, da die Bildfränder für jedes Betriebssystem gleich breit sind, Du kannst sie iwie vom System abfragen.
    (Code kann ich Dir nicht geben, ich mach kein VB6)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Erstmal danke für eure schnellen Antworten!

    Ich habe nach einigen Versuchen eine Lösung gefunden.
    Mit der Anleitung von oben erstelle ich meinen Screenshot.

    Zuvor jedoch blende ich den Rand meines Fensters aus.

    Das ganze kann dann folgendermaßen aussehen:

    Quellcode

    1. Me.BorderStyle = 0 'Ausblenden
    2. Me.Caption = Me.Caption ' dieser Ausdruck dient als Aktualisierung (sonst wird BorderStyle nicht geändert)
    3. DoSnapshot(True,Dateiname) 'Von genannter Quelle
    4. Me.BorderStyle = 2 'Rand wieder auf Default setzten (Bei mir 2 = "veränderbar")
    5. Me.Caption = Me.Caption ' dieser Ausdruck dient als Aktualisierung (sonst wird BorderStyle nicht geändert)


    @RodFromGermany: Ja das Programm ist von mir erstellt ;)

    Gruß und danke
    Yogibär