"Neo" <neo___dk@hotmail.removethis.com> skrev i en meddelelse
news:40696c0c$0$289$edfadb0f@dread11.news.tele.dk...
> Hej alle
>
> Jeg har et lille problem som jeg ikke kan gennemskue - håber at der er én
> her der kan hjælpe mig !
>
> Jeg vil udskrive indholdet af en picturebox, og har fundet dette link
>
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4003&lngWId=1
> til en API som virker helt fint, - dog har jeg lidt svært ved at
gennemskue
> hvordan jeg forhindrer
> at printeren alligevel udskriver hvis jeg vælger at annulere når printer
> dialogboksen er fremme.
>
> Jeg har tidligere benyttet mig af commondialog, men da den bliver ved med
at
> indstille den valgte
> printer som windows standard printer har jeg droppet denne.
>
> Kan I hjælpe mig ?
>
> min udskrifts kode ser således ud:
>
> Private Sub PrintOut()
> Dim P As New clsPrintDialog
> P.Flags = cdlPDPageNums + cdlPDDisablePrintToFile + cdlPDNoSelection
> P.Min = 1
> P.FromPage = 1
> P.ToPage = 1
> P.Max = 100
> P.ShowPrinter
> Debug.Print Printer.DeviceName
> Debug.Print Printer.Copies
> Debug.Print P.FromPage
> Debug.Print P.ToPage
> ' Write here Print Code with Printer Object...
>
> 'Det er her jeg ønsker en eller anden form for kode som forlader sub'en
når
> der vælges "annuler" i printerdialogboksen - hvem kan hjælpe ?
>
> PrintPictureToFitPage Printer, frmPrint.Picture1.Picture 'her kaldes
> Printer.EndDoc
>
> Set frmPrint.Picture1.Picture = Nothing
>
> End Sub
>
>
>
>
> Public Sub PrintPictureToFitPage(Prn As Printer, Pic As Picture)
>
> Prn.Orientation = vbPRORLandscape
>
> Dim x, Y As Double
>
> Y = (Prn.ScaleHeight / 2) - (frmPrint.Picture1.ScaleHeight / 2)
> x = (Prn.ScaleWidth / 2) - (frmPrint.Picture1.ScaleWidth / 2)
>
> On Error GoTo fejl
> Prn.PaintPicture Pic, x, Y, frmPrint.Picture1.ScaleWidth,
> frmPrint.Picture1.ScaleHeight
> fejl:
>
> End Sub
>
>
>
>
> Mvh, og på forhånd tak
>
> Neo
>
>
Du skriver at commondialog indstiller den valgte printer som Windows
standard printer. Det gør den ikke hos mig hvis jeg sætter PrinterDefault
property til 'False'. I commondialog kan du fange klik på 'Annuler' ved at
sætte CancelError property til 'True'. Det genererer fejlkode 32755. Et tryk
på Esc-tasten genererer samme kode.
Henning