Makale numarası: 322710 - Son Gözden Geçirme: 29 Mart 2007 Perşembe - Gözden geçirme: 2.3

NASıL YAPıLıR: Artırır ve Denetim Yazdır iletişim kutusu Visual Basic'den kutular

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Vbprndlg.dll dosya, Yazdır iletişim kutusu bölümünü Visual Basic CommonDialog denetim yerine kullanabilirsiniz. Bu dosya özellikleri sunar ve CommonDialog denetimi yapan işlevselliği sağlar.

Visual Basic'te CommonDialog denetim Yazdır iletişim kutusunun görüntülenmesine izin verir, ancak bu erişim Yazdır</a1> iletişim kutusunda ayarlayın ve Yazıcı nesnesi tarafından tüketilen özelliklerinin çoğu vermez. Yapılarına hizalama sorunları nedeniyle (diğer bir deyişle, kullanıcı tanımlı türler) Win32 uygulama programlama arabirimi (API) işlevlerini Visual Basic'den yapıldığında, güvenilir bir şekilde ek bilgi bu API çağrıları kullanılarak elde edemiyor. Bu makalede, geçici bir çözüm olarak, Yazıcı bölümü CommonDialog denetim yerine kullanabileceğiniz bir DLL sağlar.



Denetimin karşıdan yükleyin.

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Vbprndlg.exe (http://download.microsoft.com/download//vb60pro/utility/1.0/win98mexp/en-us/vbprndlg.exe)
Yayım Tarihi: Eyl 30-2002

Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır. Vbprndlg.exe dosyası aşağıdaki dosyaları içerir:

Bu tabloyu kapaBu tabloyu aç
Dosya AdıBoyut
Vbprndlg.dll100.0 kb
Vbprndlg.Exp1.0 kb
Vbprndlg.lib1.72 kb
Vbprndlg.DEP118 Bayt
Readme.txt10,9 kb


Vbprndlg.exe yükleyin.

  1. Bir konuma, silinmez ve basit bir yolu olan dosyaları ayıklar. Bu tür dosyaları, genellikle Windows System32 dizininde veya Winnt) dizinine yerleştirilir.
  2. Başlat ' ı tıklatın ve sonra da <a2>Çalıştır</a2>'ı tıklatın.
  3. Şu komutu yazın ve Tamam ' ı tıklatın:
    RegSvr32 C:\Windows\System32\VBPrnDlg.dll
    Bu komut, ikinci bölümü dll DOSYASıNıN asıl tam yolunu kullandığınızdan emin olun.

    DLL başarıyla kayıtlı bir ileti alırsınız.

Printerdlg sınıfı belgeleri

Bu DLL Visual Basic uygulaması başvuru olarak eklenen bir COM bileşenidir. DLL'i ekledikten sonra bu kod <a0>Yazdır</a0> iletişim kutusunu görüntülemek için ve kullanıcının seçtiği bilgileri almak için kullanabilirsiniz. Bu davranış CommonDialog denetiminde Visual Basic'te <a1>Yazdır</a1> iletişim kutusunun davranışı ile aynıdır.

Iletişim kutusu özellikleri

Bu özelliklerden herhangi biri hakkında daha fazla belge için CommonDialog denetimi ile ilgili belgelere bakın. Printer.hdc salt okunur durumdadır, ancak, aşağıdaki sözdizimini kullandığınızda, yıldız işareti (*) ile işaretli doğrudan Yazıcı eşleme dışında tüm aşağıdaki özellikleri nesne:
Printer.Copies = printDlg.Copies
				
  • Kopya
  • Yönlendirme
  • ColorMode
  • DriverName
  • Çift yönlü
  • PaperBin
  • Kağıt boyutu
  • Bağlantı noktası
  • PrintQuality
  • hDC
  • YazıcıAdı *
  • Dakika *
  • Mak *
  • FromPage *
  • ToPage *
YazıcıAdıAygıtAdı için Yazıcı nesnesinde eşleştirir. Yıldız işareti ile işaretlenen son dört özelliklerini (*) bir alt kümesini kullanılabilir sayfaların yazdırılması gerekir, belirlemek için kullanılır. <a0>Yazdır</a0> iletişim kutusunun Sayfa Seç bölümüne etkinleştirmek için <a0></a0>, en büyük bir sayıya ayarlanmalıdır Min büyük. Iletişim kutusu görüntülendiğinde, EnAzEnÇok ' den daha büyükse, hata oluşur. Kullanıcı alt seçerse, Min ve Mak sınırları içinde olduğu ve FromPage ve ToPage özelliklerinde döndürülen PrinterDlg nesne kesinleştirir. Bu özellikler iletişim kutusunu yükseltir ve yazdırmayı denetleyen programı işlemesi için bu özellikleri doğrudan Yazıcı nesnesi, eşleme değil.

Iletişim denetim yöntemleri ve özellikleri

  • Bayrakları - Bu, Flags özelliği CommonDialog denetimi ile aynı. Bazı özellikler iletişim kutusunun denetler. Bu değer kullanılarak ayarlanır "veya" VBPrinterConstants, farklı bir sabit ile yapılandırın. Örneğin:
    printDlg.Flags = VBPrinterConstants.cdlPDDisablePrintToFile _
                         Or VBPrinterConstants.cdlPDNoPageNums
    					
    Bu sabitler:
    Constant                  Value       Description
    ---------------------------------------------------------------------------
    cdlPDAllPages             &H0         Returns or sets the state of the All 
                                          Pages option button.
    
    cdlPDCollate              &H10        Returns or sets the state of the  
                                          Collate check box.
    
    cdlPDDisablePrintToFile   &H80000     Disables the Print To File check box.
    
    cdlPDHelpButton           &H800       Causes the dialog box to display the 
                                          Help button.
    
    cdlPDHidePrintToFile      &H100000    Hides the Print To File check box.
    
    cdlPDNoPageNums           &H8         Disables the Pages option button and 
                                          the associated edit control.
    
    cdlPDNoSelection          &H4         Disables the Selection option button.
    
    cdlPDNoWarning            &H80        Prevents a warning message from being
                                          displayed when there is no default 
                                          printer.
    
    cdlPDPageNums             &H2         Returns or sets the state of the 
                                          Pages option button.
    
    cdlPDPrintSetup           &H40        Causes the system to display the 
                                          Print Setup dialog box instead of 
                                          the Print dialog box.
    
    cdlPDPrintToFile          &H20        Returns or sets the state of the 
                                          Print To File check box.
    
    cdlPDReturnDC             &H100       Returns a device context for the 
                                          printer selection made in the dialog 
                                          box. The device context is returned 
                                          in the hDC property of the dialog 
                                          box.
    
    cdlPDReturnDefault        &H400       Returns the default printer name.
    
    cdlPDReturnIC             &H200       Returns an information context for 
                                          the printer selection made in the 
                                          dialog box. An information context 
                                          provides a fast way to get 
                                          information about the device without 
                                          creating a device context. The 
                                          information context is returned in 
                                          the hDC property of the dialog box.
    
    cdlPDSelection            &H1         Returns or sets the state of the
                                          Selection option button. If neither 
                                          cdlPDPageNums nor cdlPDSelection is 
                                          specified, the All option button is 
                                          in the selected state.
    
    cdlPDUseDevModeCopies     &H40000     If a printer driver does not support
                                          multiple copies, setting this flag 
                                          disables the Number of Copies spinner
                                          control in the Print dialog box. If a
                                          driver does support multiple copies, 
                                          setting this flag indicates that the 
                                          dialog box stores the requested 
                                          number of copies in the Copies 
                                          property.
    
    					
    Flags özelliği kullanıcının dosyaya yazdırma gibi bir alan seçtiyseniz, belirlemek için kullanabilirsiniz. Bunu yapmak için <a0></a0>, denetim iletişim kutusu görüntülemesini döndürdü, cdlPDPrintToFile bayrağı ayarlandı, bakar.

  • CancelError - bu kullanıcı iptal tıklatırsa programın bir hata döndürülür olup olmadığını belirleyen bir Boolean bayrağı bağlıdır. Kullanıcı iptal tıklatırsa bir hata oluşmaz; böylece varsayılan olarak, false, budur. Kullanıcı tıklattığında 32755 hata numarasını (& H7FF3) true olarak ayarlandığında, oluşuyorIptal etmek. Kullanıcı iletişim kutusunu iptal eder, bir servis talebini işlemek için bu hata yakalayabilirsiniz.
  • ShowPrinter - bu bu sınıftaki yalnızca yöntemidir. Bu yöntemi çağırmadan iletişim kutusunu görüntüler. Bu arama pencerenin tanıtıcı parametre olarak kabul eder. Örneğin, aşağıdaki yöntemi, bir Boole değeri döndürür:
    printDlg.ShowPrinter Me.hWnd
    						
    bu yoksayıldı. Değer TRUE ise (yani, kullanıcı iptal tıklattığında) kullanıcı yazdırma ve yanlış yoksa tıklatır.
Not: Bu tüm örneklerde printDlg bu DLL dosyasında bulunan bir sınıf örneğidir. Aşağıdaki kodu kullanarak bildirildi:
Dim printDlg As PrinterDlg
Set printDlg = New PrinterDlg
				

Örnek oluşturma adımları

DLL, kullanıcının tercihleri belirleyin ve sonra bunları hata ayıklama penceresi için kullanacağı bir örnek uygulama oluşturmak için aşağıdaki adımları izleyin:
  1. Microsoft Visual Basic'te, yeni bir standart exe DOSYASı oluşturma proje. Varsayılan olarak, Form1 oluşturulur.
  2. Proje menüsünde Başvurular ' ı tıklatın.
  3. Microsoft VB yazıcı Dialog(PSS) seçin ve Tamam ' ı tıklatın.
  4. KomutDüğmesi denetimi forma ekleyin. Varsayılan olarak, Command1 oluşturulur.
  5. Command1</a1> çift tıklatın.
  6. Command1_Click olayda aşağıdaki kodu yapıştırın:
    Dim printDlg As PrinterDlg
    Set printDlg = New PrinterDlg
    ' Set the starting information for the dialog box based on the current
    ' printer settings.
    printDlg.PrinterName = Printer.DeviceName
    printDlg.DriverName = Printer.DriverName
    printDlg.Port = Printer.Port
    
    ' Set the default PaperBin so that a valid value is returned even
    ' in the Cancel case.
    printDlg.PaperBin = Printer.PaperBin
    
    ' Set the flags for the PrinterDlg object using the same flags as in the
    ' common dialog control. The structure starts with VBPrinterConstants.
    printDlg.Flags = VBPrinterConstants.cdlPDNoSelection _
                     Or VBPrinterConstants.cdlPDNoPageNums _
                     Or VBPrinterConstants.cdlPDReturnDC
    Printer.TrackDefault = False
    
    ' When CancelError is set to True the ShowPrinterDlg will return error
    ' 32755. You can handle the error to know when the Cancel button was
    ' clicked. Enable this by uncommenting the lines prefixed with "'**".
    '**printDlg.CancelError = True
    
    ' Add error handling for Cancel.
    '**On Error GoTo Cancel
    If Not printDlg.ShowPrinter(Me.hWnd) Then
        Debug.Print "Cancel Selected"
        Exit Sub
    End If
    
    'Turn off Error Handling for Cancel.
    '**On Error GoTo 0
    Dim NewPrinterName As String
    Dim objPrinter As Printer
    Dim strsetting As String
    
    ' Locate the printer that the user selected in the Printers collection.
    NewPrinterName = UCase$(printDlg.PrinterName)
    If Printer.DeviceName <> NewPrinterName Then
        For Each objPrinter In Printers
           If UCase$(objPrinter.DeviceName) = NewPrinterName Then
                Set Printer = objPrinter
           End If
        Next
    End If
    
    ' Copy user input from the dialog box to the properties of the selected printer.
    Printer.Copies = printDlg.Copies
    Printer.Orientation = printDlg.Orientation
    Printer.ColorMode = printDlg.ColorMode
    Printer.Duplex = printDlg.Duplex
    Printer.PaperBin = printDlg.PaperBin
    Printer.PaperSize = printDlg.PaperSize
    Printer.PrintQuality = printDlg.PrintQuality
    
    ' Display the results in the immediate (Debug) window.
    ' NOTE: Supported values for PaperBin and Size are printer specific. Some
    ' common defaults are defined in the Win32 SDK in MSDN and in Visual Basic.
    ' Print quality is the number of dots per inch.
    With Printer
        Debug.Print .DeviceName
        If .Orientation = 1 Then
            strsetting = "Portrait. "
        Else
            strsetting = "Landscape. "
        End If
        Debug.Print "Copies = " & .Copies, "Orientation = " & _
           strsetting
        If .ColorMode = 1 Then
            strsetting = "Black and White. "
        Else
            strsetting = "Color. "
        End If
        Debug.Print "ColorMode = " & strsetting
        If .Duplex = 1 Then
            strsetting = "None. "
        ElseIf .Duplex = 2 Then
            strsetting = "Horizontal/Long Edge. "
        ElseIf .Duplex = 3 Then
            strsetting = "Vertical/Short Edge. "
        Else
            strsetting = "Unknown. "
        End If
        Debug.Print "Duplex = " & strsetting
        Debug.Print "PaperBin = " & .PaperBin
        Debug.Print "PaperSize = " & .PaperSize
        Debug.Print "PrintQuality = " & .PrintQuality
        If (printDlg.Flags And VBPrinterConstants.cdlPDPrintToFile) = _
           VBPrinterConstants.cdlPDPrintToFile Then
             Debug.Print "Print to File Selected"
        Else
             Debug.Print "Print to File Not Selected"
        End If
        Debug.Print "hDC = " & printDlg.hDC
    End With
    Exit Sub
    '**Cancel:
    '**If Err.Number = 32755 Then
    '**    Debug.Print "Cancel Selected"
    '**Else
    '**    Debug.Print "A nonCancel Error Occured - "; Err.Number
    '**End If
    					
  7. Hata ayıklamayı başlatmayı ve uygulamayı başlatmak için F5 tuşuna basın. Command1 <a0>Yazdır</a0> iletişim kutusunu açmak için Ek Yardım düğmesini tıklatın.
  8. Iade edildiği çıkış sırasında <a1>Debug</a1> penceresinde, Yazdır iletişim kutusundan döndükten sonra bakın.
Not: belirli bir hata oluşturulur ve kullanıcı tıklattığında iptal (benzer CommonDialog denetimle ortaya çıkan davranış için) ele istiyorsanız, satırları ile öneki uncomment "' **".

Referanslar

Visual Basic'te Yazdır iletişim kutusunu kullanma hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
173981  (http://support.microsoft.com/kb/173981/EN-US/ ) SORUN: Davranışı değişiklikleri, farklı platformlarda Yazdır iletişim kutusu
Yazıcı ayarları hakkında ek bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
190218  (http://support.microsoft.com/kb/190218/EN-US/ ) Nasıl YAPıLıR: Bir yazıcı sürücüsü ayarlarını al...
194789  (http://support.microsoft.com/kb/194789/EN-US/ ) Nasıl YAPıLıR: Kullanılabilir PaperBins DeviceCapabilities API ile belirlenir.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbdownload kbcmndlgprint kbfile kbhowto kbhowtomaster kbsample KB322710 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:322710  (http://support.microsoft.com/kb/322710/en-us/ )