Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Bilder drucken in Windows

Uploader:RedakteurMao
Datum/Zeit:23.07.2008 12:23:31

'Dieses Beispielprogramm soll die Verwendung des Print-Dialogs zeigen und
 'ein Beispiel für das Schreiben in einen Drucker-DC sein.
 'Der Autor, Dominik Schäffner, übernimmt keine Haftung für irgendwelche
 'Schäden, die durch den Gebrauch des Programmes entstanden sind.
 'Dieses Beispielprogramm darf ohne jegliche Einschränkungen
 'meinerseits frei verwendet werden.

 'Modifikation durch Michael Frey 16.06.2006
 '(Entfernung der Fenster)
 '(PrintMyText)

 'Modifikation durch Markus Böhme 23.07.2008
 '(Anpassung auf FB 0.18.5)


 #define WIN_INCLUDEALL
 #include once "windows.bi"

 Declare Function GetPrinterFromUser(hWnd As HWND) As PRINTDLG
 Declare Function PrintMyText(text AS zstring ptr, lang as uinteger,gross as uinteger) As BOOL

 Dim PrintStatus As String
 Dim Shared hWnd As HWND
 Dim ps As PAINTSTRUCT
 Dim hDC As HDC
 Dim text as string
 dim gross as uinteger

 'Hier bitte Programmieren ;-)
 input Text
 input gross

 If PrintMyText(strptr(Text),len(Text),gross) = FALSE Then
     ? "Ausdrucken fehlgeschlagen."
 Else
     ? "Daten an Drucker geschickt."
 End If



 Function GetPrinterFromUser(hWnd As HWND) As PRINTDLG
     Dim pd As PRINTDLG

     With pd
         .lStructSize    = SizeOf(PRINTDLG)
         .hwndOwner      = hWnd
         .Flags          = PD_ALLPAGES Or PD_COLLATE Or PD_RETURNDC Or PD_NOSELECTION
     End With

     PrintDlg(@pd)

     Return pd
 End Function

 Function PrintMyText(text AS zstring ptr, lang as uinteger,gross as uinteger) As BOOL
     Dim Printer As PRINTDLG
     Dim di As DOCINFO
     Dim hfMyFont As HFONT = CreateFont(gross, 0, 0, 0, 0, 0, 0, 0,_
        DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY,_
        DEFAULT_PITCH, "Times New Roman")

     'Printer-Dialog anzeigen
     Printer = GetPrinterFromUser(hWnd)

     With di
         .cbSize         = SizeOf(DOCINFO)
         .lpszDocName    = StrPtr("DruckerTest")
     End With

     'Ausdrucken
     If StartDoc(Printer.hDC, @di) <= 0 Then Return FALSE
     If StartPage(Printer.hDC) <= 0 Then Return FALSE

     SetBkMode(Printer.hDC, TRANSPARENT)
     SelectObject(Printer.hDC, hfMyFont)
     SetTextColor(Printer.hDC, Rgb(0, 0, 0))
     TextOut(Printer.hDC, 30, 40, text, lang)
     If EndPage(Printer.hDC) <= 0 Then Return FALSE
     If EndDoc(Printer.hDC) <= 0 Then Return FALSE

     'Aufräumen
     DeleteDC(Printer.hDC)
     DeleteObject(hfMyFont)

     Return TRUE
 End Function