CComboBox sınıfı, Windows Birleşik giriş kutusunun işlevselliğini sağlar.
Statik denetim veya düzenleme denetimi ile birlikte bir liste kutusu, açılan kutu oluşur. Denetimi liste kutusu bölümü her zaman görüntülenebilir veya kullanıcı denetimi yanındaki aşağı açılan oku seçtiğinde yalnızca düşebilir.
Liste kutusunda seçili olan öğeyi (varsa) veya düzenleme denetimi statik görüntülenir. Ayrıca, Birleşik giriş kutusunun aşağı açılan liste stilini varsa, kullanıcının listedeki öğelerden birini ilk karakteri yazabilirsiniz ve liste kutusunda görünüyorsa, bu ilk karakteri ile sonraki öğeyi vurgulayın.
Aşağıdaki tabloda, üç açıla&n-kutu stilleri.nbsp karşılaştırılır.;
Stil
Liste kutusu görünür olduğunda?
Statik veya düzenleme denetimi?
Basit
Her zaman
Düzenle
Açılan
Düştü
Düzenle
Aşağı açılan liste
Düştü
Statik
İletişim şablondan veya doğrudan kodunuzun bir CComboBox nesnesi oluşturabilirsiniz. Her iki durumda da, ilk kurucu CComboBox nesneyi oluşturmak için CComboBox aramak; denetimi oluşturmak ve CComboBox nesnesine eklemek için Create üye işlev çağrısı.
Üst (genellikle CDialogtüretilmiş bir sınıf) tarafından açılan kutu gönderilen Windows bildirim iletileri işlemek istiyorsanız, üst sınıf her ileti için ileti göster giriş ve ileti işleyicisi üye işlev ekleme.
Her mesaj-eşleme girdisini aşağıdaki formu alır:
ON_Bildirim(No,memberFxn)
burada kimlik bildirim ve memberFxn gönderen açılan kutu denetimi alt pencere kimliğini belirtir bildirim işlemek için yazdım üst üye işlev adıdır.
Ebeveynin işlevi prototip gibidir.:
afx_msgvoidmemberFxn();
Bazı bildirimleri gönderilecek sipariş tahmin edemez. Özellikle, bir cbn_selchange bildirimi önce veya sonra bir cbn_closeup bildirimi oluşabilir.
Potansiyel mesaj-eşleme girdilerini şunlardır:
o&n_cbn_closeupnbsp; (Windows 3.1 ve üstü.) Açılan kutunun liste kutusu kapattı. CBS_SIMPLE stili açılan kutu için bu bildirim iletisi gönderilmez.
on_cbn_dblclknbsp; Kullanıcı açılan kutunun liste kutusu dizede çift tıklattığında. Bu bildirim iletisi yalnızca bir açılan kutu CBS_SIMPLE stili ile gönderilir. Çünkü tek liste kutusunu gizler cbs_dropdown veya CBS_DROPDOW&NLIST stili ile bir açılan kutu için çift oluşamaz.
on_cbn_dropdownnbsp; Açılan kutunun liste kutusu hakkında açılan etmektir (görünür yapılabilir). Bu bildirim iletisi cbs_dropdown veya CBS_DROPDOW&NLIST stili ile bir açılan kutu için yalnızca oluşabilir.
O&N_CBN_EDITCHANGEnbsp; Kullanıcı düzenleme denetimi bölümünde açılan kutunun metin değişmiş eylem almıştır. Sonra güncelleştirmeleri Windows ekran CBN_EDITUPDATE ileti, bu mesajı gönderilir. Açılan kutunun CBS_DROPDOWNLIST stil varsa gönderilmez.
O&N_CBN_EDITUPDATEnbsp; Düzenleme denetimi açılan kutu hakkında değiştirilmiş metin görüntülemek için bölümüdür. Bu uyarı iletisi, sonra denetimin metin biçimli ancak metni görüntüler önce gönderilir. Açılan kutunun CBS_DROPDOWNLIST stil varsa gönderilmez.
o&n_cbn_errspacenbsp; Açılan kutunun belirli bir isteği karşılamak için yeterli bellek ayrılamıyor.
o&n_cbn_selendcancelnbsp; (Windows 3.1 ve üstü.) Kullanıcı seçimi iptal gösterir. Kullanıcı bir öğeyi tıklatır ve sonra başka bir pencere veya birleşik giriş kutusunun liste kutusunu gizlemek için denetimi tıklattığında. Bu bildirim iletisi kullanıcının seçimi dikkate alınması belirtmek için önce cbn_closeup bildirim iletisi gönderilir. Bile (durumunda olduğu gibi Birleşik giriş kutusunun CBS_SIMPLE stili ile) cbn_closeup bildirim iletisi gönderilmez cbn_selendcancel veya cbn_selendok bildirim iletisi gönderilir.
o&n_cbn_selendoknbsp; Kullanıcı bir öğe seçer ve sonra enter tuşuna bastığında veya birleşik giriş kutusunun liste kutusunu gizlemek için aşağı ok tuşuna tıkladığında. Bu uyarı iletisi, kullanıcının seçimi geçerli ele alınması gerektiğini belirtmek için önce cbn_closeup iletisi gönderilir. Bile (durumunda olduğu gibi Birleşik giriş kutusunun CBS_SIMPLE stili ile) cbn_closeup bildirim iletisi gönderilmez cbn_selendcancel veya cbn_selendok bildirim iletisi gönderilir.
O&N_CBN_KILLFOCUSnbsp; Açılan kutunun girdi odağını kaybediyor.
o&n_cbn_selchangenbsp; Açılan kutunun liste kutusundaki seçimi hakkında kullanıcı liste kutusunda tıklatarak veya seçimi ok tuşlarını kullanarak değiştirme sonucu değiştirilmesi etmektir. Bu iletiyi işlerken, Birleşik kutunun düzenleme denetimindeki metnin yalnızca GetLBText veya başka bir benzer işlevi ile alınabilir. GetWindowText kullanılamaz.
o&n_cbn_setfocusnbsp; Açılan kutunun girdi odağını alır.
Bir CComboBox nesne iletişim kutusu (aracılığıyla bir iletişim kaynağı) oluşturursanız, kullanıcı iletişim kutusu kapandığında CComboBox nesneyi otomatik olarak yok.
İçinde başka bir window nesnesi bir CComboBox nesnesi katıştırdığınızda, onu yok etmek gerekmez. Yy?yn üzerinde CComboBox nesne oluşturursanız, otomatik olarak yok edilir. Yeni işlevini kullanarak öbek üzerinde CComboBox nesne oluşturursanız, sen silmek nesne ne zaman Windows açılan kutuyu yok yok çağırmanız gerekir.