Aracılığıyla paylaş


ComboBoxEx Denetimleri Hakkında

ComboBoxEx denetimleri, öğe görüntüleri için yerel destek sağlayan açılır kutu denetimleridir. Öğe görüntülerinin kolayca erişilebilir olmasını sağlamak için denetim, görüntü listesi desteği sağlar. Bu denetimi kullanarak öğe grafiklerini el ile çizmek zorunda kalmadan bir açılır liste kutusunun işlevselliğini sunabilirsiniz.

Bu konu aşağıdaki bölümleri içerir.

ComboBoxEx Denetimleri Oluşturma

ComboBoxEx denetimi, bağlı bir alt açılır liste kutusu oluşturur ve atanan görüntü listesine göre sizin için sahip tarafından çizim görevlerini yerine getirir. Bu nedenle, CBS_OWNERDRAWFIXED stili belirtildiği varsayılır ve denetimi oluştururken kullanılması gereksizdir. Görüntü listeleri öğe grafikleri sağlamak için kullanıldığından, CBS_OWNERDRAWVARIABLE stili kullanılamaz.

InitCommonControlsEx işlevi çağrılarak, initcommoncontrolsexyapısına eşlik edenICC_USEREX_CLASSES belirtilerek ComboBoxEx denetimi başlatılmalıdır.

CreateWindowEx işlevini kullanarak ve pencere sınıfı olarak WC_COMBOBOXEX belirterek comboboxex denetimi oluşturabilirsiniz. InitCommonControlsEx işlevi yukarıda açıklandığı gibi çağrıldığında sınıf kaydedilir.

ComboBoxEx denetimleri varsayılan görüntü listesi olmadan oluşturulur. Öğe görüntülerini kullanmak için ComboBoxEx denetimi için bir görüntü listesi oluşturmanız ve CBEM_SETIMAGELIST iletisini kullanarak bunu denetime atamanız gerekir. ComboBoxEx denetimine bir resim listesi atamazsanız, denetim yalnızca öğe metnini görüntüler.

ComboBoxEx Denetim Stilleri

ComboBoxEx denetimleri yalnızca aşağıdaki ComboBox stillerini destekler:

  • CBS_SIMPLE
  • CBS_DROPDOWN
  • CBS_AçılırListe
  • WS_CHILD

ComboBoxEx'e özgü olan birkaç ComboBoxEx Denetimi Genişletilmiş Stilleri de vardır.

Not

CBS_SIMPLE stili bazı durumlarda düzgün çalışmayabilir.

 

ComboBoxEx denetimi, belirtilen bir resim listesini kullanarak kendi çizim görevlerini gerçekleştirdiğinden, CBS_OWNERDRAWFIXED stili bildirilir; denetimi oluştururken bunu kullanmanız gerekmez. Görüntü listeleri öğe grafikleri sağlamak için kullanıldığından, CBS_OWNERDRAWVARIABLE stili kullanılamaz. ComboBoxEx denetimi, ek özellikler sunan ComboBoxEx Denetimi Genişletilmiş Stiller'i de destekler.

ComboBoxEx Denetim Öğeleri

ComboBoxEx denetimleri, COMBOBOXEXITEM yapısı kullanarak öğe bilgilerini korur. Bu yapı öğe dizinleri, görüntü dizinleri (normal, seçim durumu ve katman), girinti değerleri, metin dizeleri ve öğeye özgü değerler için üyeleri içerir.

ComboBoxEx denetimi, mesajlaşma aracılığıyla öğelere kolay erişim ve işleme olanağı sağlar. Öğe eklemek veya silmek için CBEM_INSERTITEM veya CBEM_DELETEITEM iletisini gönderin. CBEM_SETITEM iletisini kullanarak denetimdeki öğeleri değiştirebilirsiniz.

Geri Arama Öğeleri

ComboBoxEx denetimleri geri çağırma öğesi özniteliklerini destekler. CBEM_INSERTITEMkullanarak bir öğeyi denetime eklerken geri arama öğesi olarak belirtebilirsiniz. Bir öğenin COMBOBOXEXITEM yapısına değer atadığınızda, uygun geri çağırma bayrağı değerlerini belirtmeniz gerekir. Aşağıda COMBOBOXEXITEM yapısı üyeleri ve karşılık gelen geri çağırma bayrağı değerleri yer alır.

Üye Geri çağırma değeri
pszText LPSTR_TEXTCALLBACK
iImage I_IMAGECALLBACK
iSelectedImage I_IMAGECALLBACK
iOverlay I_IMAGECALLBACK
iIndent I_INDENTCALLBACK

 

Denetim, CBEN_GETDISPINFO bildirim kodları göndererek geri arama öğeleri hakkında bilgi isteyecektir. Bu bildirim, WM_NOTIFY iletisi biçiminde gönderilir. Uygulamanız bu iletiyi işlediğinde, denetim için istenen bilgileri sağlaması gerekir. beraberindeki COMBOBOXEXITEM yapısının maskesini CBEIF_DI_SETITEM olarak ayarlarsanız, denetim öğe verilerini depolar ve bir daha istemez.

ComboBoxEx Denetim Resim Listeleri

ComboBoxEx denetiminin öğeleri içeren simgeleri görüntülemesini istiyorsanız, bir resim listesi sağlamanız gerekir. ComboBoxEx denetimleri bir öğe için en fazla üç görüntüyü destekler: biri seçili durumu, biri seçilmemiş durumu ve biri katman görüntüsü için. CBEM_SETIMAGELIST iletisini kullanarak comboboxex denetimine mevcut bir görüntü listesini atayın.

COMBOBOXEXITEM yapısı, her resim listesi için görüntü dizinlerini (seçili, seçilmemiş ve katman) temsil eden üyeleri içerir. Her öğe için bu üyeleri istediğiniz görüntüleri görüntüleyecek şekilde ayarlayın. Her görüntü türü için görüntü dizinleri belirtmek gerekli değildir. Görüntü türlerini istediğiniz gibi karıştırabilir ve eşleştirebilirsiniz, ancak hangi üyelerin kullanıldığını belirtmek için her zaman COMBOBOXEXITEM yapısının maskesini ayarlayın. Denetim, geçerli olarak işaretlenmemiş üyeleri yoksayar.

Not

CBS_SIMPLE stilini kullanırsanız simgeler görüntülenmez.

 

ComboBoxEx Denetim Bildirim İletileri hakkında

ComboBoxEx denetimi, değişiklikleri kendi içinde raporlamak veya geri çağırma öğesi bilgileri istemek için bildirim iletileri gönderir. Denetimin üst öğesi, ComboBoxEx denetiminde bulunan birleşik giriş kutusundan gelen tüm WM_COMMAND iletilerini alır. ComboBoxEx denetimi, WM_NOTIFY iletileri kullanarak kendi bildirimlerini gönderir. Sonuç olarak, denetimin sahibi her iki bildirim iletisini de işlemeye hazır olmalıdır.

aşağıda, WM_NOTIFY iletileri aracılığıyla gönderilen ComboBoxEx'e özgü bildirim kodları yer alır.

Bildirim Açıklama
CBEN_BEGINEDIT Kullanıcının açılan listeyi etkinleştirdiğini veya denetimin düzenleme kutusuna tıkladığını gösterir.
CBEN_ENDEDIT Kullanıcının açılan listeden bir öğe seçtiğini veya düzenleme kutusu içinde bir düzenleme işlemini tamamladığını gösterir.
CBEN_DELETEITEM Bir öğenin silindiğini bildirir.
CBEN_GETDISPINFO Öğenin öznitelikleri hakkında bilgi istemektedir.
CBEN_INSERTITEM Denetime bir öğenin eklendiğini gösterir.

 

ComboBoxEx Kontrol Mesaj Yönlendirme

ComboBoxEx denetiminin alt birleşik giriş kutusuna ilettiği standart birleşik giriş kutusu iletileri aşağıdadır. Bu iletilerden bazıları, ileti iletilmeden önce veya sonra ComboBoxEx denetimi tarafından işlenebilir.

ComboBoxEx denetiminin üst penceresine ilettiği windows iletileri aşağıdadır: