Ich habe eine Form mit einem Bild und integrierter Drucker-Auswahl. Es soll das Bild gedruckt werden (im Beispiel Schwarz wegen Codegrösse).
Warum wird nichts gedruckt?
Need Help, please

EDIT: Code entfernt
Code: Alles auswählen
Enumeration
#BClose
#drucker
#L105
#Vorschau
EndEnumeration
Dim DevIn.DEVMODE(0)
Dim DevOut.DEVMODE(0)
Procedure Drucken()
; the image-dimensions 320*440 is only an example
OpenPrinter_(GetGadgetText(#drucker),@PrinterHandle.l,0)
DocumentProperties_(0,PrinterHandle,GetGadgetText(#drucker),DevIn(0),DevOut(0),8|2)
ClosePrinter_(PrinterHandle)
PrinterDC.l = CreateDC_("WINSPOOL",GetGadgetText(#drucker),0,DevIn(0))
DocInf.DOCINFO
DocInf\cbSize = SizeOf(DOCINFO)
DocInf\lpszDocName = @"Ausdruck"
DocInf\lpszOutput = #Null
DruckBreite= GetDeviceCaps_(PrinterDC, 8)
DruckHoehe= GetDeviceCaps_(PrinterDC, 10)
StartDoc_(PrinterDC,@DocInf)
StartPage_(PrinterDC)
;This block works!!!
SaveImage(0, "c:\test.bmp", #PB_ImagePlugin_BMP)
imgDC = LoadImage_(0,"c:\test.bmp",0,0,0,$2050)
hdc = CreateCompatibleDC_(PrinterDC)
SelectObject_(hdc,imgDC)
;This should, but it dont
; imgDC = UseImage(0)
; hdc = CreateCompatibleDC_(PrinterDC)
; SelectObject_(hdc,imgDC)
StretchBlt_(PrinterDC,0,0,DruckBreite,DruckHoehe,hdc,0,0,319,439,#SRCCOPY)
DeleteDC_(hdc)
EndPage_(PrinterDC)
EndDoc_(PrinterDC)
DeleteDC_(PrinterDC)
EndProcedure
NewList DruckerListe.s()
Procedure GetPrinters()
ClearList(DruckerListe())
Buffersize.l = 8192
*Buffer = GlobalAlloc_(#GMEM_FIXED | #GMEM_ZEROINIT, Buffersize)
If GetProfileString_("devices", 0, "", *Buffer, Buffersize)
TempString.s = PeekS(*Buffer)
Length.l = Len(TempString)
While TempString <> ""
AddElement(DruckerListe())
DruckerListe()= TempString
TempString = PeekS(*Buffer + Length + 1)
Length = Length + Len(TempString) + 1
Wend
EndIf
GlobalFree_(*Buffer)
EndProcedure
;MAIN
OpenWindow(0, 131, 225, 646, 490, #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Test")
If CreateGadgetList(WindowID())
ButtonGadget(#BClose, 435, 455, 100, 20, "Print / Close")
ComboBoxGadget(#drucker, 405, 170, 165, 90)
TextGadget(#L105, 335, 175, 65, 15, "Printer:", #PB_Text_Right)
CreateImage(0,320,440)
ImageGadget(#Vorschau, 5, 5, 320, 440, UseImage(0))
EndIf
GetPrinters()
ResetList(DruckerListe())
While NextElement(DruckerListe()) ;all printers into combo
AddGadgetItem(#drucker,-1, DruckerListe())
Wend
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case #BClose: Ende=1
EndSelect
EndSelect
Until Ende=1
If MessageRequester("","Print Image?",#PB_MessageRequester_YesNo)=6
Drucken()
EndIf