/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Printer dialog, VB6 ... Hjælp ønskes !
Fra : Neo


Dato : 30-03-04 13:42

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



 
 
Henning Larsen (30-03-2004)
Kommentar
Fra : Henning Larsen


Dato : 30-03-04 17:06


"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



Neo (30-03-2004)
Kommentar
Fra : Neo


Dato : 30-03-04 22:37

> 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

Hej Henning

Det var det her jeg oplevede:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;198712 (på winXP med
VB6)

Jeg er klar over .cancelerror = true

Med PrinterDefault property = 'False' fik jeg godt nok listen over printere
op, men kunne ikke vælge andet end Windows standard printer, derfor valgte
jeg at bruge den API, som jeg nu i mellemtiden tror jeg har fået "tæmmet".

Den fungerer iøvrigt rigtigt fint ... nu, og som ekstra bonus er jeg fri for
at inkludere commondialog ocx'en i installationsfilen.

Mvh Neo




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste