Makale numarası: 153929 - Son Gözden Geçirme: 13 Temmuz 2004 Salı - Gözden geçirme: 2.1

COMDLG32.DLL VB ve Access arasında renk iletişim kutusu nasıl kullanılır?

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ı.
Hepsini aç | Hepsini kapa

Özet

Windows her zaman COMDLG32.DLL yüklü olduğundan COMDLG32.DLL kullanmak yapmak iyi bir yeniden Windows altındaki kaynakların var. COMDLG32.OCX denetimini kullanmak yerine, programınızı OCX belleğe yüklemek ve ayrıca ek 90 K dosya müşterilerinize dağıtmanız gerekir. OCX denetimi önceden tanımlanmış iletişim kutuları için kullanımı kolay arabirim sağlar, ancak performansı ve kaynakları daha pahalı bir isabet olur. Performansı en iyi duruma getirme ve kaynak kullanımını azaltmak için uygulamalarınızda denetimleri kullanımını en aza indirmek ve Win32 API çağrıları doğrudan kullanmak gerekir. Aşağıdaki kodu Renk Seç iletişim kutusunda COMDLG32.DLL nasıl örneğidir.

Daha fazla bilgi

1a Visual Basic: yeni bir proje Başlat. Varsayılan olarak, Form1 oluşturulur.

1b Access: bir veritabanı açın ve yeni bir form oluşturun.
  1. Bir KomutDüğmesi (Command1) Form'a Ekle.
  2. Formu genel Tanımlamalar bölümüne aşağıdaki kodu ekleyin:
       Option Explicit
    
       Private Type CHOOSECOLOR
         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
    
       Private Declare Function ChooseColorAPI Lib "comdlg32.dll" Alias _
         "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
    
       Dim CustomColors() As Byte
    
       Private Sub Command1_Click()
           Dim cc As CHOOSECOLOR
           Dim Custcolor(16) As Long
           Dim lReturn As Long
           cc.lStructSize = Len(cc)
           cc.hwndOwner = Me.hWnd
           cc.hInstance = 0
           cc.lpCustColors = StrConv(CustomColors, vbUnicode)
           cc.flags = 0
           lReturn = ChooseColorAPI(cc)
           If lReturn <> 0 Then
               Me.Caption = "RGB Value User Chose: " & Str$(cc.rgbResult)
               Me.BackColor = cc.rgbResult            ' Visual Basic only ****
               Me.Section(0).BackColor = cc.rgbResult ' Access only **********
               CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
           Else
               MsgBox "User chose the Cancel Button"
           End If
       End Sub
    
       Private Sub Form_Load()
           ReDim CustomColors(0 To 16 * 4 - 1) As Byte
           Dim i As Integer
    
           For i = LBound(CustomColors) To UBound(CustomColors)
               CustomColors(i) = 0
           Next i
       End Sub
    
    					
4a Visual Basic: Proje çalıştırmak için F5 tuşuna basın.

4b Access: formu açmak ve çalıştırmak için View|Form menüyü kullanın.
  1. KomutDüğmesi'ı tıklatın ve renk iletişim kutusu görüntülenir. Bir renk seçin ve Tamam'ı tıklatın, formun arka plan rengi için seçili rengini değiştirir.
Iletişim kutusunun özel renk parçası, görüntülenmesini engellemek isterseniz, ondalık değeri 4 olarak sabit CC_PREVENTFULLOPEN CHOOSECOLOR yapısını bayraklarını öğesinde kullanılabilir.

Not: Command1_Click yordamı yukarıdaki, bir Access formu ve bir Visual Basic formu arka plan rengini ayarlamak için bu kodu biraz farklıdır. Her iki komutları dahil ve yorum olarak belirtilmiş. Yalnızca kullanmakta olduğunuz ürünü için uygun olan komutu yazın.

Referanslar

Microsoft Visual Basic Programmer's Guide, Bölüm 11, P.325-332.

Win32 SDK.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Anahtar Kelimeler: 
kbmt kbhowto KB153929 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:153929  (http://support.microsoft.com/kb/153929/en-us/ )