' Josef Kirschbaum ' Einfaches Drucken eines Strings ' #COMPILE EXE #DIM ALL #INCLUDE "WIN32API.INC" #INCLUDE "COMDLG32.INC" '------------------------------------------------------------ %IDD_DIALOG1 = 101 %IDC_LABEL1 = 1001 %IDC_BUTTON1 = 1002 '------------------------------------------------------------ CALLBACK FUNCTION DlgProc() LOCAL txt AS STRING SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG txt$="Schickt den Inhalt einer Stringvariablen an den Standarddrucker" CONTROL SET TEXT CBHNDL, %IDC_LABEL1, txt$ END SELECT END FUNCTION '------------------------------------------------------------ CALLBACK FUNCTION DruckProc() LOCAL hDC AS DWORD LOCAL Result AS LONG LOCAL szText AS ASCIIZ * 256 LOCAL di AS DOCINFO LOCAL PD AS PRINTDLGAPI LOCAL txt AS STRING 'Handle fr Device-Context anfordern PD.lStructSize = SIZEOF(PD) PD.flags = %PD_RETURNDC OR %PD_RETURNDEFAULT Result = PrintDlg(PD) hDC = PD.hDC IF ISFALSE hDC*Result THEN MSGBOX "Problem mit Standarddrucker" EXIT FUNCTION END IF szText = "Drucken ganz einfach" 'Job-Name fr Drucker-Spooler DI.lpszDocName=VARPTR(szText) 'Job-Name an DocInfo bergeben Result = StartDoc(hDC, di) 'Druckausgabe starten IF ISFALSE Result THEN MSGBOX "StartDoc Error!" EXIT FUNCTION END IF Result = StartPage(hDC) 'Neue Seite beschreiben IF ISFALSE Result THEN MSGBOX "StartPage Error!" EXIT FUNCTION END IF CONTROL GET TEXT CBHNDL, %IDC_LABEL1 TO txt$ sztext=txt$ Result = TextOut(hDC, 0, 0, sztext, LEN(txt$)) Result = EndPage(hDC) ' Seitenende IF ISFALSE Result THEN MSGBOX "EndPage Error!" EXIT FUNCTION END IF Result = EndDoc(hDC) ' Druckjob beendet IF ISFALSE Result THEN MSGBOX "EndDoc Error!" EXIT FUNCTION END IF DeleteDC(hDC) 'l”scht den Device Context END FUNCTION '------------------------------------------------------------ FUNCTION PBMAIN() LOCAL hDlg AS DWORD DIALOG NEW 0,"Drucken ganz einfach",120,161,240,90,%WS_SYSMENU,,TO hDlg CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "", 10, 10, 220, 15 CONTROL ADD BUTTON,hDlg, %IDC_BUTTON1, "Drucken mit Standarddrucker", _ 60, 40, 120, 15, CALL DruckProc DIALOG SHOW MODAL hDlg, CALL DlgProc END FUNCTION