' Grötsch Erwin ' Drucker - Auswahl #PBFORMS CREATED V1.51 '------------------------------------------------------------------------- #COMPILE EXE #DIM ALL '------------------------------------------------------------------------- #PBFORMS BEGIN INCLUDES #IF NOT %DEF(%WINAPI) #INCLUDE "WIN32API.INC" #ENDIF #PBFORMS END INCLUDES '------------------------------------------------------------------------- $INCLUDE "COMDLG32.INC" '------------------------------------------------------------------------- #PBFORMS BEGIN CONSTANTS %IDD_PRN_DLG1 = 101 %IDC_PRN_DLG1_LBL1 = 1001 %IDC_PRN_DLG1_LBL2 = 1002 %IDC_PRN_DLG1_BTN1 = 1003 #PBFORMS END CONSTANTS '------------------------------------------------------------------------- DECLARE CALLBACK FUNCTION ShowPRN_DLG1Proc() DECLARE FUNCTION ShowPRN_DLG1(BYVAL hParent AS DWORD) AS LONG #PBFORMS DECLARATIONS '------------------------------------------------------------------------- DECLARE FUNCTION Printer(hWnd AS LONG, hDC AS DWORD, sUsePrinterName AS STRING) AS LONG '------------------------------------------------------------------------- FUNCTION PBMAIN() ShowPRN_DLG1 %HWND_DESKTOP END FUNCTION '------------------------------------------------------------------------- CALLBACK FUNCTION ShowPRN_DLG1Proc() ' SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler ' CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF ' CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_PRN_DLG1_LBL1 ' CASE %IDC_PRN_DLG1_LBL2 ' CASE %IDC_PRN_DLG1_BTN1 IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN LOCAL hDC AS DWORD LOCAL sUsePrinterName AS STRING ' PrinterSetup(CBHNDL) Printer(CBHNDL, hDC, sUsePrinterName) CONTROL SET TEXT CBHNDL, %IDC_PRN_DLG1_LBL1, STR$(hDC) CONTROL SET TEXT CBHNDL, %IDC_PRN_DLG1_LBL2, sUsePrinterName ' LOCAL lpdi AS DOCINFO LOCAL DocName AS STRING DocName = "Testausdruck" ' lpdi.lpszDocName = STRPTR(DocName) ' StartDoc(hdc, lpdi) TextOut hDC, 1, 1, "TEST", 4 EndDoc(hdc) ' END IF ' END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------- FUNCTION Printer(hWnd AS LONG, hDC AS DWORD, sUsePrinterName AS STRING) AS LONG ' LOCAL pd AS PRINTDLGAPI ' pd.lStructSize = SIZEOF(pd) pd.hDevMode = save_hDevMode pd.hDevNames = save_hDevNames pd.hWndOwner = hWnd pd.Flags = %PD_SHOWHELP OR %PD_RETURNDC OR %PD_PRINTSETUP 'or %PD_RETURNDEFAULT ' IF PrintDlg(pd) THEN save_hDevMode = pd.hDevMode save_hDevNames = pd.hDevNames hdc = pd.hdc FUNCTION = %TRUE ' LOCAL pDevNames AS DEVNAMES PTR LOCAL psz AS ASCIIZ PTR ' LOCAL sUsePrinterName AS STRING ' IF pd.hDevNames <> 0 THEN pDevNames = GlobalLock(PD.hDevNames) psz = pDevnames psz = psz + @pDevnames.wDeviceOffset sUsePrinterName = @psz GlobalUnlock PD.hDevnames END IF ' END IF ' END FUNCTION '------------------------------------------------------------------------- FUNCTION ShowPRN_DLG1(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG ' #PBFORMS BEGIN DIALOG %IDD_PRN_DLG1->-> LOCAL hDlg AS DWORD DIALOG NEW hParent, " Printer", 70, 70, 314, 151, %WS_POPUP OR %WS_BORDER OR %WS_DLGFRAME _ OR %WS_SYSMENU OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR _ %DS_SETFOREGROUND OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, _ %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO _ hDlg CONTROL ADD LABEL, hDlg, %IDC_PRN_DLG1_LBL1, "HDC", 80, 15, 145, 10, %WS_CHILD OR _ %WS_VISIBLE OR %SS_CENTER, %WS_EX_LEFT OR %WS_EX_LTRREADING CONTROL ADD LABEL, hDlg, %IDC_PRN_DLG1_LBL2, "", 80, 30, 145, 10, %WS_CHILD OR _ %WS_VISIBLE OR %SS_CENTER, %WS_EX_LEFT OR %WS_EX_LTRREADING CONTROL ADD BUTTON, hDlg, %IDC_PRN_DLG1_BTN1, "OK", 115, 115, 80, 15 #PBFORMS END DIALOG ' DIALOG SHOW MODAL hDlg, CALL ShowPRN_DLG1Proc TO lRslt ' #PBFORMS BEGIN CLEANUP %IDD_PRN_DLG1 #PBFORMS END CLEANUP ' FUNCTION = lRslt END FUNCTION '-------------------------------------------------------------------------