Printrequester
Printrequester
Hallo ich habe mir mal die PrintLib angeschaut und kam nicht drauf wie ich feststellen kann welche einstellungen im Printrequester gemacht wurden. Wie bekomme ich zB raus dass nur markierung angeklickt wurde???
Der Printrequester macht schon was.
Den Drucker kann man auswählen (wenn man mehrere Drucker hat).
Die Einstellungen in den Druckertreibern sind
änderbar (werden allerdings nicht permanent übernommen).
Für einen kompletteren Zugriff auf die Druckroutinen musst Du
mutmaßlich etwas Aufwand treiben.
Mit Pb druckt man genauso aus wie in der Hilfe beschrieben.
Den Drucker kann man auswählen (wenn man mehrere Drucker hat).
Die Einstellungen in den Druckertreibern sind
änderbar (werden allerdings nicht permanent übernommen).
Für einen kompletteren Zugriff auf die Druckroutinen musst Du
mutmaßlich etwas Aufwand treiben.
Mit Pb druckt man genauso aus wie in der Hilfe beschrieben.
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
So sollte es gehen:
Code: Alles auswählen
Info.S
PrintDlg.PRINTDLG
Result.L
DevMode = GlobalAlloc_(#GMEM_MOVEABLE | #GMEM_ZEROINIT, SizeOf(DEVMODE))
DevModeLocked = GlobalLock_(DevMode)
PrintDlg\lStructSize = SizeOf(PRINTDLG)
PrintDlg\Flags = #PD_ALLPAGES
PrintDlg\hDevMode = DevModeLocked
Result = PrintDlg_(PrintDlg)
If Result <> #False
*DevMode.DEVMODE = PrintDlg\hDevMode
Info = "Anzahl Kopien = " + Str(*DevMode\dmCopies)
If PrintDlg\Flags & #PD_SELECTION
Info = Info + #CR$ + "Nur markierten Text drucken"
ElseIf PrintDlg\Flags & #PD_PAGENUMS
Info = Info + #CR$ + "Nur die Seiten " + Str(PrintDlg\nFromPage) + "-" + Str(PrintDlg\nToPage) + " drucken"
Else
Info = Info + #CR$ + "Alles drucken"
EndIf
MessageRequester("Aktuelle Drucker-Einstellungen", Info, #MB_ICONINFORMATION)
EndIf
GlobalUnlock_(DevMode)
GlobalFree_(DevMode)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Dann solltest Du entweder updaten, weil die fehlt nicht. Oder Du versuchst esKonne hat geschrieben:Danke aber es geht nicht, da die Structure Fehlt
mit PRINTDLG_API, so ungefähr hieß die Strukture in älteren Versionen, oder
Du suchst Dir die Strukture in der MSDN raus und deklarierst sie selber.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

In PureBASIC 3.94 ist die Struktur PRINTDLG vordefiniert. Sollte dies in älteren Versionen noch nicht der Fall sein, hier ist sie (aus PBOSL_ExPrinter) zum Einfügen in den Kopf meines obigen Beispiels:
Getestet habe ich mein Beispiel übrigens erfolgreich unter Windows NT 4.0 SP6a und Windows XP SP2.
Code: Alles auswählen
Structure PRINTDLG
lStructSize.l
hwndOwner.l
hDevMode.l
hDevNames.l
hDC.l
Flags.l
nFromPage.w
nToPage.w
nMinPage.w
nMaxPage.w
nCopies.w
hInstance.l
lCustData.l
lpfnPrintHook.l
lpfnSetupHook.l
lpPrintTemplateName.s
lpSetupTemplateName.s
hPrintTemplate.l
hSetupTemplate.l
EndStructure