不用COMMONDIALOG怎样调用选择打印机的对话框?

解决方案 »

  1.   

    我就是不想用那个控件,用API函数可以吗?比如那控件的ShowOpen就可以用API代替
      

  2.   

    低手路过。窗体上放一个combo控件cmbPrinterPrivate Sub Form_Load()
        If Printers.Count > 0 Then
            Dim prn As Printer
            For Each prn In Printers
                cmbPrinter.AddItem prn.DeviceName
            Next prn
        End IfEnd Sub
    Private Sub cmbPrinter_Validate(Cancel As Boolean)
        Dim prn As Printer
        
        If cmbPrinter <> "" Then
            Cancel = True
            For Each prn In Printers
                If cmbPrinter = prn.DeviceName Then
                    Cancel = False
                    Set Printer = prn
                    Exit For
                End If
            Next prn
        End If
        If Cancel = True Then
            MsgBox "没有找到此打印机", vbInformation
        End If
    End Sub
      

  3.   

    Public Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG) As Long
      

  4.   

    typedef struct tagPD {  // pd 
        DWORD     lStructSize; 
        HWND      hwndOwner; 
        HANDLE    hDevMode; 
        HANDLE    hDevNames; 
        HDC       hDC; 
        DWORD     Flags; 
        WORD      nFromPage; 
        WORD      nToPage; 
        WORD      nMinPage; 
        WORD      nMaxPage; 
        WORD      nCopies; 
        HINSTANCE hInstance; 
        DWORD     lCustData; 
        LPPRINTHOOKPROC lpfnPrintHook; 
        LPSETUPHOOKPROC lpfnSetupHook; 
        LPCTSTR    lpPrintTemplateName; 
        LPCTSTR    lpSetupTemplateName; 
        HANDLE    hPrintTemplate; 
        HANDLE    hSetupTemplate; 
    } PRINTDLG; 
    api text view中沒有定義,查msdn