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-Denetim Stilleri
- ComboBoxEx Denetim Öğeleri
- Geri Arama Öğeleri
- ComboBoxEx Denetim Görüntüsü Listeleri
- ComboBoxEx Denetimi Bildirim İletileri Hakkında
- ComboBoxEx Denetim İletisi İletme
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.
- CB_DELETESTRING
- CB_FINDSTRINGEXACT
- CB_GETCOUNT
- CB_GETCURSEL
- CB_GETDROPPEDCONTROLRECT
- CB_GETDROPPEDSTATE
- CB_GETITEMDATA
- CB_GETITEMHEIGHT
- CB_GETLBTEXT
- CB_GETLBTEXTLEN
- CB_GETEXTENDEDUI
- CB_LIMITTEXT
- CB_RESETCONTENT
- CB_SETCURSEL
- CB_SETDROPPEDWIDTH
- CB_SETEXTENDEDUI
- CB_SETITEMDATA
- CB_SETITEMHEIGHT
- CB_SHOWDROPDOWN
ComboBoxEx denetiminin üst penceresine ilettiği windows iletileri aşağıdadır:
- WM_COMMAND (Bu, tüm CBN_ bildirimlerini içerir.)
- WM_NOTIFY