| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 1325: PrintForm-Ersatz für Korrektes Ausdrucken einer Form | | | Autor: Papageno | Tipp anzeigenDatum: 18.05.11 13:33 |
| Hi,
kann das sein, dass dieser Tipp outdated ist. Selbst wenn ich den Tipp unverändert in einem Projekt laufen lasse, bekomme ich immer einen kompletten Screenshot und nicht den einer einzelnen Form.
Ich suche eigentlich nur nach einer Möglichkeit ein Frame und die darin enthaltenen shapes und Labels in die Zwischenablage zu kopieren.
Ach ja, ich verwende VB 6.0
Gruß
papageno
Beitrag wurde zuletzt am 18.05.11 um 13:35:09 editiert. | |
Re: PrintForm-Ersatz für Korrektes Ausdrucken einer Form | | | Autor: Papageno | Datum: 18.05.11 19:30 |
| Funktionieren tut das mit
keybd_event VK_SNAPSHOT, 1, 0, 0 Details siehe http://support.microsoft.com/kb/240653/de
Dann hat man aber noch die Fensterrahmen. Dies lässt sich bedingt mit folgenden Tricks beheben http://www.vbarchiv.net/forum/id3_i27721t27674_borderstyle-zur-laufzeit-aendern.html
Ich habe in der Form_load folgendes:
Call SetWindowPos(hWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE Or _
SWP_NOZORDER Or SWP_FRAMECHANGED)
'Wunschwert
Call SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) Xor _
(WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or _
WS_MAXIMIZEBOX)) und die Funktion zum Kopieren in die Zwischenablage ist folgender:
Call SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) Xor _
(WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or _
WS_MAXIMIZEBOX))
Wait 500
Me.Refresh
keybd_event VK_SNAPSHOT, 1, 0, 0
Wait 500
Call SetWindowPos(hWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE Or _
SWP_NOZORDER Or SWP_FRAMECHANGED)
Me.Refresh Die Wait Funktion ist notwendig, da sich sonst irgendwelcher Schrott noch im Bildschirmspeicher befindet.
Nicht die sauberste Lösung, aber es klappt so halbwegs (jedes 2. Mal...)
Salü | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats 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
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
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.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|