Aracılığıyla paylaş


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

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

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.