在VB中如何调出打印机设置的对话框?

解决方案 »

  1.   

    文件打开/存盘话框,字体对话框,打印机对话框,颜色对话框.做法: 
    加一个FORM1,在FORM1理放5个按钮名字为command1到5 
    再加上下列代码 Option Explicit 
    Private Sub Command1_Click() 
    Dim sOpen As SelectedFile 
    Dim Count As Integer 
    Dim FileList As StringOn Error GoTo e_Trap FileDialog.sFilter = "Text Files (*.txt)" & Chr$(0) & "*.sky" & Chr$(0 
    ) & "All Files (*.*)" & Chr$(0) & "*.*" ' See Standard CommonDialog Flags for all options 
    FileDialog.flags = OFN_EXPLORER Or OFN_LONGNAMES Or OFN_HIDEREADONLY O 
    r OFN_ALLOWMULTISELECT 
    FileDialog.sDlgTitle = "Show Open" 
    FileDialog.sInitDir = App.Path & "\" 
    sOpen = ShowOpen(Me.hWnd) 
    If Err.Number <> 32755 And sOpen.bCanceled = False Then 
    FileList = "Directory : " & sOpen.sLastDirectory & vbCr 
    For Count = 1 To sOpen.nFilesSelected 
    FileList = FileList & sOpen.sFiles(Count) & vbCr 
    Next Count 
    Call MsgBox(FileList, vbOKOnly + vbInformation, "Show Open Selected") End If 
    Exit Sub 
    e_Trap: 
    Exit Sub 
    Resume 
    End Sub 
    Private Sub Command2_Click() 
    Dim sSave As SelectedFile 
    Dim Count As Integer 
    Dim FileList As String 
    On Error GoTo e_Trap FileDialog.sFilter = "Text Files (*.txt)" & Chr$(0) & "*.sky" & Chr$(0 
    ) & "All Files (*.*)" & Chr$(0) & "*.*" ' See Standard CommonDialog Flags for all options 
    FileDialog.flags = OFN_HIDEREADONLY 
    FileDialog.sDlgTitle = "Show Save" 
    FileDialog.sInitDir = App.Path & "\" 
    sSave = ShowSave(Me.hWnd) 
    If Err.Number <> 32755 And sSave.bCanceled = False Then 
    FileList = "Directory : " & sSave.sLastDirectory & vbCr 
    For Count = 1 To sSave.nFilesSelected 
    FileList = FileList & sSave.sFiles(Count) & vbCr 
    Next Count 
    Call MsgBox(FileList, vbOKOnly + vbInformation, "Show Save Selected") End If 
    Exit Sub 
    e_Trap: 
    Exit Sub 
    Resume 
    End Sub 
    Private Sub Command3_Click() 
    Dim sFont As SelectedFont 
    On Error GoTo e_Trap 
    FontDialog.iPointSize = 12 * 10 
    sFont = ShowFont(Me.hWnd, "Times New Roman") 
    Exit Sub 
    e_Trap: 
    Exit Sub 
    End Sub 
    Private Sub Command4_Click() 
    On Error GoTo e_Trap 
    Call ShowPrinter(Me.hWnd) 
    Exit Sub 
    e_Trap: 
    Exit Sub 
    End Sub 
    Private Sub Command5_Click() 
    Dim sColor As SelectedColor 
    On Error GoTo e_Trap 
    sColor = ShowColor(Me.hWnd) 
    Exit Sub 
    e_Trap: 
    Exit Sub 
    End Sub
      

  2.   

    module文件里加上: Option Explicit 
    Type RECT 
    left As Long 
    top As Long 
    Right As Long 
    Bottom As Long 
    End Type 
    Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long 
    ) As Long 
    Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (By 
    Val hWnd As Long, ByVal nIndex As Long) As Long 
    Declare Function GetCurrentThreadId Lib "KERNEL32" () As Long 
    Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookEx 
    A" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVa 
    l dwThreadId As Long) As Long 
    Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal  
    hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As 
     Long, ByVal cy As Long, ByVal wFlags As Long) As Long 
    Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRec 
    t As RECT) As Long 
    Const GWL_HINSTANCE = (-6) 
    Const SWP_NOSIZE = &H1 
    Const SWP_NOZORDER = &H4 
    Const SWP_NOACTIVATE = &H10 
    Const HCBT_ACTIVATE = 5 
    Const WH_CBT = 5 
    Dim hHook As Long 
    Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFile 
    NameA" (pOpenfilename As OPENFILENAME) As Long 
    Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFile 
    NameA" (pOpenfilename As OPENFILENAME) As Long 
    Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" ( 
    pChoosecolor As CHOOSECOLORS) As Long 
    Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long 
    Declare Function GetShortPathName Lib "KERNEL32" Alias "GetShortPathNa 
    meA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByV 
    al cchBuffer As Long) As Long 
    Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pC 
    hoosefont As CHOOSEFONTS) As Long 
    Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrint 
    dlg As PRINTDLGS) As Long 
    Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long 
    Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC 
     As Long) As Long 
    Public Const OFN_ALLOWMULTISELECT = &H200 
    Public Const OFN_CREATEPROMPT = &H2000 
    Public Const OFN_ENABLEHOOK = &H20 
    Public Const OFN_ENABLETEMPLATE = &H40 
    Public Const OFN_ENABLETEMPLATEHANDLE = &H80 
    Public Const OFN_EXPLORER = &H80000 
    Public Const OFN_EXTENSIONDIFFERENT = &H400 
    Public Const OFN_FILEMUSTEXIST = &H1000 
    Public Const OFN_HIDEREADONLY = &H4 
    Public Const OFN_LONGNAMES = &H200000 
    Public Const OFN_NOCHANGEDIR = &H8 
    Public Const OFN_NODEREFERENCELINKS = &H100000 
    Public Const OFN_NOLONGNAMES = &H40000 
    Public Const OFN_NONETWORKBUTTON = &H20000 
    Public Const OFN_NOREADONLYRETURN = &H8000 
    Public Const OFN_NOTESTFILECREATE = &H10000 
    Public Const OFN_NOVALIDATE = &H100 
    Public Const OFN_OVERWRITEPROMPT = &H2 
    Public Const OFN_PATHMUSTEXIST = &H800 
    Public Const OFN_READONLY = &H1 
    Public Const OFN_SHAREAWARE = &H4000 
    Public Const OFN_SHAREFALLTHROUGH = 2 
    Public Const OFN_SHAREWARN = 0 
    Public Const OFN_SHARENOWARN = 1 
    Public Const OFN_SHOWHELP = &H10 
    Public Const OFS_MAXPATHNAME = 256 
    Public Const LF_FACESIZE = 32 
    'OFS_FILE_OPEN_FLAGS and OFS_FILE_SAVE_FLAGS below 
    'are mine to save long statements; they're not 
    'a standard Win32 type. 
    Public Const OFS_FILE_OPEN_FLAGS = OFN_EXPLORER Or OFN_LONGNAMES Or OF 
    N_CREATEPROMPT Or OFN_NODEREFERENCELINKS Or OFN_HIDEREADONLY Or OFN_AL 
    LOWMULTISELECT 
    Public Const OFS_FILE_SAVE_FLAGS = OFN_EXPLORER Or OFN_LONGNAMES Or OF 
    N_OVERWRITEPROMPT Or OFN_HIDEREADONLY 
    Public Type OPENFILENAME 
    nStructSize As Long 
    hwndOwner As Long 
    hInstance As Long 
    sFilter As String 
    sCustomFilter As String 
    nCustFilterSize As Long 
    nFilterIndex As Long 
    sFile As String 
    nFileSize As Long 
    sFileTitle As String 
    nTitleSize As Long 
    sInitDir As String 
    sDlgTitle As String 
    flags As Long 
    nFileOffset As Integer 
    nFileExt As Integer 
    sDefFileExt As String 
    nCustDataSize As Long 
    fnHook As Long 
    sTemplateName As String 
    End Type 
    Type NMHDR 
    hwndFrom As Long 
    idfrom As Long 
    code As Long 
    End Type 
    Type OFNOTIFY 
    hdr As NMHDR 
    lpOFN As OPENFILENAME 
    pszFile As String ' May be NULL 
    End Type
      

  3.   

    Type CHOOSECOLORS 
    lStructSize As Long 
    hwndOwner As Long 
    hInstance As Long 
    rgbResult As Long 
    lpCustColors As String 
    flags As Long 
    lCustData As Long 
    lpfnHook As Long 
    lpTemplateName As String 
    End Type 
    Type LOGFONT 
    lfHeight As Long 
    lfWidth As Long 
    lfEscapement As Long 
    lfOrientation As Long 
    lfWeight As Long 
    lfItalic As Byte 
    lfUnderline As Byte 
    lfStrikeOut As Byte 
    lfCharSet As Byte 
    lfOutPrecision As Byte 
    lfClipPrecision As Byte 
    lfQuality As Byte 
    lfPitchAndFamily As Byte 
    lfFaceName(LF_FACESIZE) As Byte 
    End Type 
    Public Type CHOOSEFONTS 
    lStructSize As Long 
    hwndOwner As Long ' caller's window handle 
    hDC As Long ' printer DC/IC or NULL 
    lpLogFont As Long ' ptr. to a LOGFONT struct 
    iPointSize As Long ' 10 * size in points of selected font 
    flags As Long ' enum. type flags 
    rgbColors As Long ' returned text color 
    lCustData As Long ' data passed to hook fn. 
    lpfnHook As Long ' ptr. to hook function 
    lpTemplateName As String ' custom template name 
    hInstance As Long ' instance handle of.EXE that 
    lpszStyle As String ' return the style field here 
    nFontType As Integer ' same value reported to the EnumFonts 
    MISSING_ALIGNMENT As Integer 
    nSizeMin As Long ' minimum pt size allowed & 
    nSizeMax As Long ' max pt size allowed if 
    End Type 
    Public Const CC_RGBINIT = &H1 
    Public Const CC_FULLOPEN = &H2 
    Public Const CC_PREVENTFULLOPEN = &H4 
    Public Const CC_SHOWHELP = &H8 
    Public Const CC_ENABLEHOOK = &H10 
    Public Const CC_ENABLETEMPLATE = &H20 
    Public Const CC_ENABLETEMPLATEHANDLE = &H40 
    Public Const CC_SOLIDCOLOR = &H80 
    Public Const CC_ANYCOLOR = &H100 
    Public Const COLOR_FLAGS = CC_FULLOPEN Or CC_ANYCOLOR Or CC_RGBINIT 
    Public Const CF_SCREENFONTS = &H1 
    Public Const CF_PRINTERFONTS = &H2 
    Public Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS) 
    Public Const CF_SHOWHELP = &H4& 
    Public Const CF_ENABLEHOOK = &H8& 
    Public Const CF_ENABLETEMPLATE = &H10& 
    Public Const CF_ENABLETEMPLATEHANDLE = &H20& 
    Public Const CF_INITTOLOGFONTSTRUCT = &H40& 
    Public Const CF_USESTYLE = &H80& 
    Public Const CF_EFFECTS = &H100& 
    Public Const CF_APPLY = &H200& 
    Public Const CF_ANSIONLY = &H400& 
    Public Const CF_SCRIPTSONLY = CF_ANSIONLY 
    Public Const CF_NOVECTORFONTS = &H800& 
    Public Const CF_NOOEMFONTS = CF_NOVECTORFONTS 
    Public Const CF_NOSIMULATIONS = &H1000& 
    Public Const CF_LIMITSIZE = &H2000& 
    Public Const CF_FIXEDPITCHONLY = &H4000& 
    Public Const CF_WYSIWYG = &H8000 ' must also have CF_SCREENFONTS CF_PR 
    INTERFONTS 
    Public Const CF_FORCEFONTEXIST = &H10000 
    Public Const CF_SCALABLEONLY = &H20000 
    Public Const CF_TTONLY = &H40000 
    Public Const CF_NOFACESEL = &H80000 
    Public Const CF_NOSTYLESEL = &H100000 
    Public Const CF_NOSIZESEL = &H200000 
    Public Const CF_SELECTSCRIPT = &H400000 
    Public Const CF_NOSCRIPTSEL = &H800000 
    Public Const CF_NOVERTFONTS = &H1000000 
    Public Const SIMULATED_FONTTYPE = &H8000 
    Public Const PRINTER_FONTTYPE = &H4000 
    Public Const SCREEN_FONTTYPE = &H2000 
    Public Const BOLD_FONTTYPE = &H100 
    Public Const ITALIC_FONTTYPE = &H200 
    Public Const REGULAR_FONTTYPE = &H400 
    Public Const LBSELCHSTRING = "commdlg_LBSelChangedNotify" 
    Public Const SHAREVISTRING = "commdlg_ShareViolation" 
    Public Const FILEOKSTRING = "commdlg_FileNameOK" 
    Public Const COLOROKSTRING = "commdlg_ColorOK" 
    Public Const SETRGBSTRING = "commdlg_SetRGBColor" 
    Public Const HELPMSGSTRING = "commdlg_help" 
    Public Const FINDMSGSTRING = "commdlg_FindReplace" 
    Public Const CD_LBSELNOITEMS = -1 
    Public Const CD_LBSELCHANGE = 0 
    Public Const CD_LBSELSUB = 1 
    Public Const CD_LBSELADD = 2
      

  4.   

    应该用下面这两个API函数,调用页面设置对话框。
    Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PAGESETUPDLG) As LongThe PageSetupDlg function creates a Page Setup dialog box that enables the user to specify the attributes of a printed page. These attributes include the paper size and source, the page orientation (portrait or landscape), and the width of the page margins.Declare Function PrintDialog Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG_TYPE) As LongThe PrintDialog function displays a Print dialog box or a Print Setup dialog box. The Print dialog box enables the user to specify the properties of a particular print job.
      

  5.   

    使用CommonDialog控件!
     代码:
       With CommonDialog
             .Action = 5
        End With