| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Druckerdialog aufrufen
Lauffähig ab Profan-Version 5.0
Def APIPrintDlg(1) ! COMDLG32.DLL,PrintDlgA,#,%
Def APICommDlgExtendedError(0) ! COMDLG32.DLL,CommDlgExtendedError,,&
Def APIGetDeviceCaps(2) ! GDI32,GetDeviceCaps,%%,%
cls
Declare printdlg#,x%
Dim printdlg#,66
long printdlg#,0=66 Länge der Struktur
long printdlg#,4=%Hwnd Aufrufendes Fenster -> kann auch 0 sein
long printdlg#,8=0 DeviceMode
long printdlg#,12=0 DeviceName
long printdlg#,16=0 HDC
long printdlg#,20=$000000102 Flags
word printdlg#,24=1 Von Seite
word printdlg#,26=99 Bis Seite
word printdlg#,28=1 Anfangsseite ( Minimum )
word printdlg#,30=100 Endseite ( Maximum )
word printdlg#,32=0 Anzahl der Kopien
apiprintdlg(printdlg#)
print Fehlerrückgabewert = ;APICommDlgExtendedError()
print
print Anfangsseite : ;@word(printdlg#,24)
print Endseite : ;@word(printdlg#,26)
print Kopien : ;@word(printdlg#,32)
If equ(@Long(printdlg#,20),292) Flags auslesen
print Ausdruck in Datei
else
print Normaler Ausdruck
endif
print
print ANMERKUNG : Bei mir funktionieren nicht alle Einstellungen. Möglicherweise
print liegt das an meinen Druckertreibern ( Win31 ??? ).
print
Let x%=@Word(printdlg#,16)
if @equ(APIGetDeviceCaps(x%,2),2) then
Print Ausgabe Device : Rasterdrucker
endif
print
print Ausgabebreite in Pixel : ;APIGetDeviceCaps(x%,8)
print Ausgabehöhe in Pixel : ;APIGetDeviceCaps(x%,10)
print DPI Breite : ;APIGetDeviceCaps(x%,88)
print DPI Höhe : ;APIGetDeviceCaps(x%,90)
print
print Ausgabe-Breite in mm : ;APIGetDeviceCaps(x%,4)
print Ausgabe-Höhe in mm : ;APIGetDeviceCaps(x%,6)
waitinput
dispos printdlg#
end
|
|
|
| |
|
|