Birleşik Giriş Kutusu Özellikleri
Bu belgede birleşik giriş kutusunun özellikleri ele alınmaktadır. Daha fazla bilgi için aşağıdaki konulara bakın:
-
Özel Özellikler
- Dizin Listeleri
- Liste Öğeleriyle İlişkili Verileri
- Genişletilmiş Kullanıcı Arabirimi
- İşaret Başlıkları
- birleşik giriş kutusu bildirimleri
- Varsayılan Birleşik Giriş Kutusu Davranışı
Özel Özellikler
Bir uygulamanın birleşik giriş kutusunda dizin listesini görüntülemesine, birleşik giriş kutusundaki liste öğeleriyle verileri ilişkilendirmesine ve açılan birleşik giriş kutusu veya açılan liste kutusunun klavye arabirimini değiştirmesine olanak tanıyan özel amaçlı iletiler ve işlevler vardır.
- Dizin Listeleri
- Liste Öğeleriyle İlişkili Verileri
- Genişletilmiş Kullanıcı Arabirimi
- İşaret Başlıkları
Dizin Listeleri
Uygulama, CB_DIR iletisini göndererek bir birleşik giriş kutusuna dosya veya alt dizin adlarını ekleyebilir. Bu iletinin wParam parametresi, eklenecek dosyaların özniteliklerini belirtir ve lParam parametresi, dosya belirtimini tanımlayan metin dizesine yönelik bir işaretçidir.
İletişim kutusundaki birleşik giriş kutusunun içeriğini değiştirmek için DlgDirListComboBox işlevini kullanabilirsiniz. İşlev, birleşik giriş kutusunu belirtilen ölçüt kümesiyle eşleşen sürücülerin, dizinlerin ve dosyaların adlarıyla doldurur. DlgDirSelectComboBoxEx işlevi, DlgDirListComboBoxtarafından başlatılan birleşik giriş kutusunda geçerli seçimi alır. Bu işlevler, kullanıcının dosyanın konumunu ve adını yazmadan birleşik giriş kutusundan bir sürücü, dizin veya dosya seçmesini mümkün hale getirir.
DlgDirListComboBox ve DlgDirSelectComboBoxEx işlevleri ve CB_DIR iletisi, DlgDirList ve DlgDirSelectEx işlevlerine ve liste kutularıyla kullanılan LB_DIR iletisine benzer.
Liste Öğeleriyle İlişkili Veriler
Uygulama, birleşik giriş kutusundaki liste öğeleriyle verileri ilişkilendirebilir. CB_SETITEMDATA iletisi bir DWORD değerini liste öğesiyle ilişkilendirir ve CB_GETITEMDATA bir liste öğesiyle ilişkili değeri alır.
Sahip Çizilmiş Birleşik Giriş Kutusu Oluşturma örneği, bir sabiti açılan liste kutusundaki her öğeyle ilişkilendirmek için öğe verilerini kullanır. Böyle benzersiz bir değer, her öğeyi sıralanmış konumundan bağımsız olarak tanımlar.
Diğer uygulamalar, bir tanıtıcıyı veya işaretçiyi liste öğesiyle ilişkilendirmek için öğe verilerini kullanabilir. Bu durumda, bir uygulama liste öğesi silindiğinde belirtilen nesneyi silmek veya serbest getirmek için bir WM_DELETEITEM iletisini işleyebilir.
Genişletilmiş Kullanıcı Arabirimi
Açılan birleşik giriş kutuları ve açılan liste kutuları, genişletilmiş kullanıcı arabirimiadlı alternatif bir klavye arabirimini destekler. Varsayılan olarak, F4 tuşu listeyi açar veya kapatır ve AŞAĞI OK geçerli seçimi değiştirir. Bununla birlikte, genişletilmiş kullanıcı arabirimine sahip bir birleşik giriş kutusunda F4 tuşu devre dışı bırakılır ve AŞAĞI OK tuşuna basıldığında açılan liste açılır. Buna ek olarak, normalde listedeki öğeler arasında kayan fare tekerleği, genişletilmiş kullanıcı arabirimi ayarlandığında herhangi bir işleve sahip değildir.
Birleşik giriş kutusunun kullanıcı arabirimini seçmek için, uygulama birleşik giriş kutusuna CB_SETEXTENDEDUI iletisini gönderebilir. wParam parametresi için TRUE değeri genişletilmiş kullanıcı arabirimini etkinleştirir; FALSE değeri varsayılan kullanıcı arabirimini ayarlar. Birleşik giriş kutusunun genişletilmiş kullanıcı arabirimini kullanıp kullanmadığını belirlemek için, uygulama birleşik giriş kutusuna CB_GETEXTENDEDUI iletisini gönderebilir.
İşaret Başlıkları
İşaret başlıkları düzenleme denetimlerinin ve birleşik giriş kutularının yeni bir özelliğidir. İpucu başlığının amacı, kullanıcıya düzenleme denetiminin veya birleşik giriş kutusunun amacı hakkında ipucu sağlamaktır. Aşağıdaki ekran görüntüsünde "Ara" işaret metniyle bir düzenleme denetimi gösterilmektedir.
"Ara" işaret metniyle düzenleme denetiminin ekran görüntüsünü
Düzenleme denetiminde metin olmadığında veya birleşik giriş kutusunda seçim olmadığında ipucu başlığının metni görüntülenir. Kullanıcı düzenleme denetimine metin girdiğinde veya birleşik giriş kutusuna bir seçim yaptığında, ipucu başlığı kaybolur. Varsayılan olarak, düzenleme denetimi veya birleşik giriş kutusu odağı aldığında ipucu başlığı da kaybolur.
Birleşik Giriş Kutusu Bildirimleri
Birleşik giriş kutularından gelen iletiler, WM_COMMAND iletileri biçiminde bildirim kodları olarak gönderilir. Bildirim kodu, wParam parametresinin yüksek sözcüğünde depolanır ve bir uygulama aşağıdaki birleşik giriş kutusu bildirim kodlarını işleyebilir.
Bildirim kodu | Açıklama |
---|---|
CBN_CLOSEUP | Açılan birleşik giriş kutusundaki veya açılan liste kutusundaki listenin kapanmak üzere olduğunu gösterir. |
CBN_DBLCLK | Kullanıcının basit bir birleşik giriş kutusunda bir liste öğesine çift tıkladığını gösterir. |
CBN_DROPDOWN | Açılan birleşik giriş kutusundaki veya açılan liste kutusundaki listenin açılmak üzere olduğunu gösterir. |
CBN_EDITCHANGE | Kullanıcının basit veya açılan bir birleşik giriş kutusunun düzenleme denetimindeki metni değiştirdiğini gösterir. Bu bildirim kodu, değiştirilen metin görüntülendikten sonra gönderilir. |
CBN_EDITUPDATE | Kullanıcının basit veya açılan bir birleşik giriş kutusunun düzenleme denetimindeki metni değiştirdiğini gösterir. Değiştirilen metin görüntülenmeden önce bu bildirim kodu gönderilir. |
CBN_ERRSPACE | Birleşik giriş kutusunun, liste öğesi ekleme gibi bir isteği gerçekleştirmek için yeterli bellek ayıramadığını gösterir. |
CBN_KILLFOCUS | Birleşik giriş kutusunun giriş odağını kaybetmek üzere olduğunu gösterir. |
CBN_SELCHANGE | Geçerli seçimin değiştiğini gösterir. |
CBN_SELENDCANCEL | Açılan listede, açılan listede yapılan seçimin yoksayılması gerektiğini gösterir. |
CBN_SELENDOK | Seçilen açılan listenin bırakıldığı sırada kabul edilmesi gerektiğini gösterir. |
CBN_SETFOCUS | Birleşik giriş kutusunun giriş odağını aldığını gösterir. |
Varsayılan Birleşik Giriş Kutusu Davranışı
Bu aşağıdaki tabloda, önceden tanımlanmış COMBOBOX sınıf penceresi yordamı tarafından özel olarak işlenen iletiler açıklanmaktadır.
İleti | Açıklama |
---|---|
CB_ADDSTRING | Liste öğesi eklemek için liste penceresine bir LB_ADDSTRING iletisi gönderir. |
CB_DELETESTRING | Liste öğesini silmek için liste penceresine bir LB_DELETESTRING iletisi gönderir. |
CB_DIR | Belirtilen özniteliklerle eşleşen dosya adlarını ve yolu listeye ekler. |
CB_FINDSTRING | Liste penceresine bir LB_FINDSTRING iletisi gönderir. Bu ileti, belirtilen metinle başlayan ilk liste öğesinin dizinini döndürür. |
CB_FINDSTRINGEXACT | Liste penceresine bir LB_FINDSTRING iletisi gönderir. Bu ileti, belirtilen metinle tam olarak eşleşen ilk liste öğesinin dizinini döndürür. |
CB_GETCOUNT | Liste penceresine bir LB_GETCOUNT iletisi gönderir. Liste öğelerinin sayısını döndürür. |
CB_GETCURSEL | Liste penceresine bir LB_GETCURSEL iletisi gönderir. Varsa, seçili durumdaki öğenin dizinini döndürür. |
CB_GETDROPPEDCONTROLRECT | Belirtilen dikdörtgen yapısını açılan listenin ekran koordinatlarıyla doldurur. |
CB_GETDROPPEDSTATE | Açılan liste açıksa TRUE döndürür; aksi takdirde, FALSEdöndürür. |
CB_GETDROPPEDWIDTH | Açılan listenin izin verilen en düşük genişliğini piksel cinsinden döndürür. |
CB_GETEDITSEL | Düzenleme denetimine bir EM_GETSEL iletisi gönderir ve geçerli seçimin başlangıç ve bitiş konumunu döndürür. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
CB_GETEXTENDEDUI | Birleşik giriş kutusu açılan birleşik giriş kutusu veya açılan liste kutusuysa ve kullanıcı arabirimini genişlet bayrağı ayarlandıysa TRUE döndürür; aksi takdirde, FALSEdöndürür. |
CB_GETHORIZONTALEXTENT | Liste penceresine bir LB_GETHORIZONTALEXTENT iletisi gönderir. Açılan listenin kaydırılabilir genişliğini piksel cinsinden döndürür. |
CB_GETITEMDATA | Liste penceresine bir LB_GETITEMDATA iletisi gönderir. Belirtilen liste öğesiyle ilişkili değeri döndürür. |
CB_GETITEMHEIGHT | Liste penceresine bir LB_GETITEMHEIGHT iletisi gönderir. Belirtilen sahip tarafından çizilen liste öğesinin yüksekliğini piksel cinsinden döndürür. |
CB_GETLBTEXT | Liste penceresine bir LB_GETTEXT iletisi gönderir. Belirtilen liste metnini belirtilen arabelleğe kopyalar. |
CB_GETLBTEXTLEN | Liste penceresine bir LB_GETTEXTLEN iletisi gönderir. Belirtilen liste metninin TCHARuzunluğunu döndürür. |
CB_GETLOCALE | Liste penceresine bir LB_GETLOCALE iletisi gönderir. Listenin geçerli yerel ayarını döndürür. |
CB_GETMINVISIBLE | Birleşik giriş kutusunun açılan listesinde en az görünür öğe sayısını alır. |
CB_GETTOPINDEX | Liste penceresine bir LB_GETTOPINDEX iletisi gönderir. Açılan listedeki ilk görünür öğenin dizinini döndürür. |
CB_INITSTORAGE | Liste penceresine bir LB_INITSTORAGE iletisi gönderir. Belirtilen öğe sayısı ve öğe dizeleri için belirtilen bayt sayısı için alan başlatır. |
CB_INSERTSTRING | Liste penceresine bir LB_INSERTSTRING iletisi gönderir. Belirtilen konuma bir liste öğesi ekler. |
CB_LIMITTEXT | Düzenleme denetimine bir EM_LIMITTEXT iletisi gönderir. Kullanıcının düzenleme denetimine girebileceği en fazla karakter sayısını ayarlar. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
CB_RESETCONTENT | Liste penceresine bir LB_RESETCONTENT iletisi gönderir ve listenin içeriğini kaldırır. |
CB_SELECTSTRING | Liste penceresine bir LB_SELECTSTRING iletisi gönderir. Varsa, belirtilen metindeki karakterlerle başlayan ilk liste öğesini seçer. |
CB_SETCURSEL | Liste penceresine bir LB_SETCURSEL iletisi gönderir ve geçerli seçimi ayarlar. |
CB_SETDROPPEDWIDTH | Açılan listenin izin verilen en düşük genişliğini piksel olarak ayarlar. |
CB_SETEDITSEL | Düzenleme denetimine bir EM_SETSEL iletisi gönderir. Belirtilen metin aralığını seçer. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
CB_SETEXTENDEDUI | Genişletilmiş kullanıcı arabirimi bayrağını ayarlar veya temizler. Bu bayrak, açılan birleşik giriş kutusunda veya açılan liste kutusunda listeyi açan ve kapatan anahtarları değiştirir. Birleşik giriş kutusu basit bir birleşik giriş kutusuysa, pencere yordamı CB_ERR döndürür. |
CB_SETHORIZONTALEXTENT | Liste penceresine bir LB_SETHORIZONTALEXTENT iletisi gönderir. Açılan listenin kaydırılabilir genişliğini piksel olarak ayarlar. |
CB_SETITEMDATA | Liste penceresine bir LB_SETITEMDATA iletisi gönderir. Belirtilen değeri bir liste öğesiyle ilişkilendirir. |
CB_SETITEMHEIGHT | Liste penceresine bir LB_SETITEMHEIGHT iletisi gönderir. Belirtilen sahip tarafından çizilen liste öğesinin veya seçim alanının yüksekliğini ayarlar. |
CB_SETLOCALE | Liste penceresine bir LB_SETLOCALE iletisi gönderir ve listenin geçerli yerel ayarını ayarlar. Yerel ayar, CBS_SORT stiline sahipse listenin nasıl sıralanacağını etkiler ve dizeler CB_ADDSTRINGkullanılarak eklenir. |
CB_SETMINVISIBLE | Birleşik giriş kutusunun açılan listesinde en az görünür öğe sayısını ayarlar. |
CB_SETTOPINDEX | Liste penceresine bir LB_SETTOPINDEX iletisi gönderir. Belirtilen öğe görünür aralığın en üstünde olacak şekilde açılan listeyi kaydırır. |
CB_SHOWDROPDOWN | Açılan listeyi gösterir veya gizler. Bu iletinin basit birleşik giriş kutuları üzerinde hiçbir etkisi yoktur. |
WM_CHAR | Karakter girişini işler. Açılan liste kutularında, bu ileti liste penceresine geçirilir ve bu da seçimi belirtilen karakterden başlayarak ilk öğeye taşır. Basit ve açılan birleşik giriş kutularında, bu ileti düzenleme denetimine geçirilir. |
WM_CLEAR | Düzenleme seçimini siler. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
WM_COMMAND | Düzenleme denetimi ve liste penceresinden bildirim iletilerini işler ve ilgili birleşik giriş kutusu bildirim kodlarını üst pencereye gönderir. |
Denetim bildirimlerini düzenleme için, pencere yordamı liste penceresinin geçerli seçimini, şapka işaretinin dizinini ve en üst dizini güncelleştirebilir. Liste bildirim iletileri için, pencere yordamı seçim alanının içeriğini güncelleştirebilir. | |
WM_COMPAREITEM | uygulamanın sahip tarafından çizilmiş iki liste öğesinin göreli sıralama konumunu belirtmesini sağlayarak iletiyi üst pencereye geçirir. Birleşik giriş kutusu penceresi bu iletiyi liste penceresinden alır. |
WM_COPY | Düzenleme seçimini panoya kopyalar. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
WM_CREATE | Birleşik giriş kutusunu başlatır. |
WM_CUT | Düzenleme seçimini siler ve panoya yerleştirir. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
WM_DELETEITEM | İletiyi üst pencereye geçirerek bir liste öğesinin silindiğini uygulamaya bildirir. Birleşik giriş kutusu penceresi bu iletiyi liste penceresinden alır. |
WM_DRAWITEM | uygulamanın belirtilen liste öğesini boyamasını sağlayan iletiyi üst pencereye geçirir. Birleşik giriş kutusu penceresi bu iletiyi liste penceresinden alır. Pencere yordamı, uygulamanın açılan liste kutusunun seçim alanını boyamasını sağlamak için bu iletiyi de oluşturabilir. |
WM_ENABLE | Fare ve klavye girişini etkinleştirmek veya yasaklama durumunu ayarlar. |
WM_ERASEBKGND | Arka plan silindiğini belirten 1 döndürür. |
WM_GETDLGCODE | DLG_WANTCHARS ve DLGC_WANTARROWS değerlerinin bir bileşimini döndürür. |
WM_GETFONT | Birleşik giriş kutusunun metnini çizeceği geçerli yazı tipi tutamacını döndürür. |
WM_GETTEXT | Seçim alanının içeriğini belirtilen arabelleğe kopyalar. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. |
WM_GETTEXTLENGTH | Seçim alanındaki metnin uzunluğunu karakter olarak döndürür. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. |
WM_KEYDOWN | Character olmayan klavye girişini işler. Açılan liste kutularında, bu ileti kendisini gösterebilen veya gizleyebilen ya da geçerli seçim veya şapka işareti dizinini değiştirebilen liste penceresine gönderilir. Basit ve açılan birleşik giriş kutularında, bu ileti düzenleme denetimine geçirilir. Düzenleme denetimi, YUKARI ve AŞAĞI OK tuşları ve F4 tuşu gibi belirli anahtarları liste penceresine geçirir. |
WM_KILLFOCUS | Seçim alanındaki vurguyu gizler ve gerekirse açılan listeyi kapatır. Giriş odağını alan pencere birleşik giriş kutusunun parçasıysa (örneğin, düzenleme denetimi), bu ileti yoksayılır. |
WM_LBUTTONDBLCLK | WM_LBUTTONDOWNile aynıdır. |
WM_LBUTTONDOWN | Odağı birleşik giriş kutusuna ayarlar ve açılan birleşik giriş kutuları ve açılan listeler için listeyi açabilir veya kapatabilirsiniz. Liste açılırsa, pencere yordamı fare düğmesini sürükleyip bırakarak seçimi etkinleştirmek için fareyi yakalar. |
WM_LBUTTONUP | Fare listeyi açtıysa fare yakalamayı serbest bırakır. |
WM_MEASUREITEM | uygulamanın belirtilen MEASUREITEMSTRUCT yapısının içeriğini değiştirmesini sağlayarak iletiyi üst pencereye postalar. Birleşik giriş kutusu penceresi bu iletiyi liste penceresinden alır. |
WM_MOUSEMOVE | Fare listeyi açtıysa ve fare düğmesi hala çalışmıyorsa, iletiyi liste penceresine postalar. Bu, kullanıcının fare işaretçisini liste öğesine sürükleyip düğmeyi serbest bırakarak öğe seçmesini sağlar. |
WM_NCCREATE | Birleşik giriş kutusu penceresi yordamı tarafından kullanılan bir iç veri yapısı ayırır. |
WM_NCDESTROY | WM_NCCREATE iletisine yanıt olarak ayrılan kaynakları serbesttir. |
WM_PAINT | Birleşik giriş kutusunun geçersiz bölgesini boyar. wParam NULL değilse, alt sınıf işlevinden geçirilen bir cihaz bağlamı (DC) tanıtıcısı olduğu varsayılır. Pencere yordamı, BeginPaintve EndPaintçağırmak yerine belirtilen DC'yi kullanır. |
WM_PASTE | Düzenleme seçimini panonun içeriğiyle değiştirir. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
WM_SETFOCUS | Odağı düzenleme denetimine ayarlar veya açılan liste kutularında seçim alanını ters çevirir ve liste penceresinde şapka işaretini açar. |
WM_SETFONT | Belirtilen yazı tipi tutamacını bir iç yapıya kaydeder, seçim alanının ve listenin boyutlarını ayarlar ve birleşik giriş kutusu penceresini geçersiz kılabilir. Seçim alanındaki metin ve liste, kaydedilen yazı tipinde görüntülenir. |
WM_SETREDRAW | Yeniden çiz bayrağını ayarlar veya temizler. Yeniden çiz bayrağı temizlenirse, bayrak yeniden ayarlanana kadar birleşik giriş kutusu yeniden boyanmaz. |
WM_SETTEXT | Düzenleme denetiminin içeriğini ayarlar. Basit ve açılan birleşik giriş kutularında düzenleme denetimi bu iletiyi işler. Açılan liste kutularında pencere yordamı CB_ERR döndürür. |
WM_SIZE | Gerekirse alt pencereleri yeniden boyutlandırıyor. |
WM_SYSKEYDOWN | Kullanıcının bastığı ok tuşuna bağlı olarak açılan listeyi açar veya kapatır. |
Diğer tüm iletiler, varsayılan işleme için DefWindowProc işlevine geçirilir.