Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Note
Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Windows birleşik giriş kutusunun işlevselliğini sağlar.
Syntax
class CComboBox : public CWnd
Members
Ortak Oluşturucular
| Name | Description |
|---|---|
CComboBox::CComboBox |
Bir CComboBox nesne oluşturur. |
Genel Yöntemler
| Name | Description |
|---|---|
CComboBox::AddString |
Birleşik giriş kutusunun liste kutusundaki listenin sonuna veya stiline sahip CBS_SORT liste kutuları için sıralanmış konuma bir dize ekler. |
CComboBox::Clear |
Düzenleme denetimindeki geçerli seçimi (varsa) siler (temizler). |
CComboBox::CompareItem |
Sıralanmış sahip tarafından çizilmiş birleşik giriş kutusunda yeni bir liste öğesinin göreli konumunu belirlemek için çerçeve tarafından çağrılır. |
CComboBox::Copy |
Varsa geçerli seçimi Pano'ya CF_TEXT biçiminde kopyalar. |
CComboBox::Create |
Birleşik giriş kutusunu oluşturur ve nesneye CComboBox ekler. |
CComboBox::Cut |
Düzenleme denetiminde geçerli seçimi (varsa) siler (keser) ve silinen metni Pano'ya CF_TEXT biçiminde kopyalar. |
CComboBox::DeleteItem |
Bir liste öğesi sahip tarafından çizilmiş birleşik giriş kutusundan silindiğinde çerçeve tarafından çağrılır. |
CComboBox::DeleteString |
Birleşik giriş kutusunun liste kutusundan bir dize siler. |
CComboBox::Dir |
Birleşik giriş kutusunun liste kutusuna dosya adlarının listesini ekler. |
CComboBox::DrawItem |
Sahip tarafından çizilmiş birleşik giriş kutusunun görsel bir yönü değiştiğinde çerçeve tarafından çağrılır. |
CComboBox::FindString |
Birleşik giriş kutusunun liste kutusunda belirtilen ön eki içeren ilk dizeyi bulur. |
CComboBox::FindStringExact |
Belirtilen dizeyle eşleşen ilk liste kutusu dizesini (birleşik giriş kutusunda) bulur. |
CComboBox::GetComboBoxInfo |
Nesne hakkındaki CComboBox bilgileri alır. |
CComboBox::GetCount |
Birleşik giriş kutusunun liste kutusundaki öğe sayısını alır. |
CComboBox::GetCueBanner |
Birleşik giriş kutusu denetimi için görüntülenen ipucu metnini alır. |
CComboBox::GetCurSel |
Birleşik giriş kutusunun liste kutusunda seçili durumdaki öğenin dizinini (varsa) alır. |
CComboBox::GetDroppedControlRect |
Açılan bir birleşik giriş kutusunun görünür (açılan) liste kutusunun ekran koordinatlarını alır. |
CComboBox::GetDroppedState |
Açılan birleşik giriş kutusunun liste kutusunun görünür (açılan) olup olmadığını belirler. |
CComboBox::GetDroppedWidth |
Birleşik giriş kutusunun açılan liste kutusu bölümü için izin verilen en düşük genişliği alır. |
CComboBox::GetEditSel |
Birleşik giriş kutusunun düzenleme denetimindeki geçerli seçimin başlangıç ve bitiş karakter konumlarını alır. |
CComboBox::GetExtendedUI |
Birleşik giriş kutusunun varsayılan kullanıcı arabirimine mi yoksa genişletilmiş kullanıcı arabirimine mi sahip olduğunu belirler. |
CComboBox::GetHorizontalExtent |
Birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabilmesi için piksel cinsinden genişliği döndürür. |
CComboBox::GetItemData |
Belirtilen birleşik giriş kutusu öğesiyle ilişkili uygulama tarafından sağlanan 32 bit değeri alır. |
CComboBox::GetItemDataPtr |
Belirtilen birleşik giriş kutusu öğesiyle ilişkili, uygulama tarafından sağlanan 32 bit işaretçiyi alır. |
CComboBox::GetItemHeight |
Birleşik giriş kutusundaki liste öğelerinin yüksekliğini alır. |
CComboBox::GetLBText |
Birleşik giriş kutusunun liste kutusundan bir dize alır. |
CComboBox::GetLBTextLen |
Birleşik giriş kutusunun liste kutusundaki dizenin uzunluğunu alır. |
CComboBox::GetLocale |
Birleşik giriş kutusunun yerel ayar tanımlayıcısını alır. |
CComboBox::GetMinVisible |
Geçerli birleşik giriş kutusunun açılan listesinde en az görünür öğe sayısını alır. |
CComboBox::GetTopIndex |
Birleşik giriş kutusunun liste kutusu bölümündeki ilk görünür öğenin dizinini döndürür. |
CComboBox::InitStorage |
Birleşik giriş kutusunun liste kutusu bölümündeki öğeler ve dizeler için bellek bloklarını önceden ayırır. |
CComboBox::InsertString |
Birleşik giriş kutusunun liste kutusuna bir dize ekler. |
CComboBox::LimitText |
Kullanıcının birleşik giriş kutusunun düzenleme denetimine girebileceği metnin uzunluğunu sınırlar. |
CComboBox::MeasureItem |
Sahip tarafından çizilen birleşik giriş kutusu oluşturulduğunda birleşik giriş kutusu boyutlarını belirlemek için çerçeve tarafından çağrılır. |
CComboBox::Paste |
Panodaki verileri geçerli imleç konumundaki düzenleme denetimine ekler. Veriler yalnızca Pano biçiminde veri CF_TEXT içeriyorsa eklenir. |
CComboBox::ResetContent |
Liste kutusundan tüm öğeleri kaldırır ve birleşik giriş kutusunun denetimini düzenler. |
CComboBox::SelectString |
Birleşik giriş kutusunun liste kutusunda bir dize arar ve dize bulunursa, liste kutusundaki dizeyi seçer ve dizeyi düzenleme denetimine kopyalar. |
CComboBox::SetCueBanner |
Birleşik giriş kutusu denetimi için görüntülenen ipucu metnini ayarlar. |
CComboBox::SetCurSel |
Birleşik giriş kutusunun liste kutusunda bir dize seçer. |
CComboBox::SetDroppedWidth |
Birleşik giriş kutusunun açılan liste kutusu bölümü için izin verilen en düşük genişliği ayarlar. |
CComboBox::SetEditSel |
Birleşik giriş kutusunun düzenleme denetimindeki karakterleri seçer. |
CComboBox::SetExtendedUI |
veya CBS_DROPDOWN stiline sahip birleşik giriş kutusu için varsayılan kullanıcı arabirimini veya genişletilmiş kullanıcı arabirimini CBS_DROPDOWNLIST seçer. |
CComboBox::SetHorizontalExtent |
Birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabilmesi için piksel cinsinden genişliği ayarlar. |
CComboBox::SetItemData |
Birleşik giriş kutusunda belirtilen öğeyle ilişkili 32 bit değeri ayarlar. |
CComboBox::SetItemDataPtr |
Birleşik giriş kutusundaki belirtilen öğeyle ilişkili 32 bit işaretçiyi ayarlar. |
CComboBox::SetItemHeight |
Birleşik giriş kutusundaki liste öğelerinin yüksekliğini veya birleşik giriş kutusunun düzenleme denetimi (veya statik metin) bölümünün yüksekliğini ayarlar. |
CComboBox::SetLocale |
Birleşik giriş kutusu için yerel ayar tanımlayıcısını ayarlar. |
CComboBox::SetMinVisibleItems |
Geçerli birleşik giriş kutusunun açılan listesinde en az görünür öğe sayısını ayarlar. |
CComboBox::SetTopIndex |
Birleşik giriş kutusunun liste kutusu bölümüne öğeyi en üstte belirtilen dizinle görüntülemesini söyler. |
CComboBox::ShowDropDown |
veya stiline sahip CBS_DROPDOWN birleşik giriş kutusunun liste kutusunu gösterir veya CBS_DROPDOWNLIST gizler. |
Remarks
Birleşik giriş kutusu, statik denetim veya düzenleme denetimiyle birleştirilmiş bir liste kutusundan oluşur. Denetimin liste kutusu bölümü her zaman görüntülenebilir veya yalnızca kullanıcı denetimin yanındaki açılan oku seçtiğinde açılır menü olabilir.
Liste kutusunda seçili durumda olan öğe (varsa) statik veya düzenleme denetiminde görüntülenir. Buna ek olarak, birleşik giriş kutusu açılan liste stiline sahipse, kullanıcı listedeki öğelerden birinin ilk karakterini yazabilir ve görünür durumdaysa, liste kutusu bu ilk karaktere sahip bir sonraki öğeyi vurgular.
Aşağıdaki tablo üç birleşik giriş kutusu stilini karşılaştırır.
| Style | Liste kutusu ne zaman görünür | Statik veya düzenleme denetimi |
|---|---|---|
| Simple | Always | Edit |
| Drop-down | Aşağı bırakıldığında | Edit |
| Açılan liste | Aşağı bırakıldığında | Static |
Bir iletişim kutusu şablonundan veya doğrudan kodunuz içinde bir nesne oluşturabilirsiniz CComboBox . Her iki durumda da, önce nesnesini oluşturmak için oluşturucuyu CComboBox çağırın CComboBox ; ardından denetimi oluşturmak ve nesneye eklemek için üye işlevini çağırın CreateCComboBox .
Birleşik giriş kutusu tarafından üst öğesine gönderilen Windows bildirim iletilerini işlemek istiyorsanız (genellikle öğesinden CDialogtüretilen bir sınıf), her ileti için üst sınıfa bir ileti eşleme girdisi ve ileti işleyicisi üye işlevi ekleyin.
Her ileti eşleme girdisi aşağıdaki formu alır:
ON_Notification( id, memberFxn )
burada id , bildirimi gönderen birleşik giriş kutusu denetiminin alt pencere kimliğini belirtir ve memberFxn bildirimi işlemek için yazdığınız üst üye işlevinin adıdır.
Ebeveynin işlev prototipi aşağıdaki gibidir:
afx_msg void memberFxn( );
Belirli bildirimlerin gönderilme sırası tahmin edilemez. Özellikle, bildirimden CBN_SELCHANGE önce veya sonra bir CBN_CLOSEUP bildirim oluşabilir.
Olası ileti eşlemesi girişleri şunlardır:
ON_CBN_CLOSEUP(Windows 3.1 ve üzeri.) Birleşik giriş kutusunun liste kutusu kapatıldı. Bu bildirim iletisi, stili olanCBS_SIMPLEbir birleşik giriş kutusu için gönderilmez.ON_CBN_DBLCLKKullanıcı, birleşik giriş kutusunun liste kutusunda bir dizeye çift tıklar. Bu bildirim iletisi yalnızca stilineCBS_SIMPLEsahip bir birleşik giriş kutusu için gönderilir. veyaCBS_DROPDOWNstilineCBS_DROPDOWNLISTsahip bir birleşik giriş kutusu için, tek bir tıklama liste kutusunu gizlediğinden çift tıklama gerçekleşemez.ON_CBN_DROPDOWNBirleşik giriş kutusunun liste kutusu açılan menüye indirilecek (görünür hale getirilecek). Bu bildirim iletisi yalnızca veyaCBS_DROPDOWNstilineCBS_DROPDOWNLISTsahip bir birleşik giriş kutusu için oluşabilir.ON_CBN_EDITCHANGEKullanıcı, birleşik giriş kutusunun düzenleme denetimi bölümündeki metni değiştirmiş olabilecek bir eylemde bulundu. İletininCBN_EDITUPDATEaksine, windows ekranı güncelleştirdikten sonra bu ileti gönderilir. Birleşik giriş kutusu stilineCBS_DROPDOWNLISTsahipse gönderilmez.ON_CBN_EDITUPDATEBirleşik giriş kutusunun düzenleme denetimi bölümü değiştirilmiş metni görüntülemek üzere. Bu bildirim iletisi, denetim metni biçimlendirdikten sonra ancak metni görüntülemeden önce gönderilir. Birleşik giriş kutusu stilineCBS_DROPDOWNLISTsahipse gönderilmez.ON_CBN_ERRSPACEBirleşik giriş kutusu belirli bir isteği karşılamak için yeterli bellek ayıramaz.ON_CBN_SELENDCANCEL(Windows 3.1 ve üzeri.) Kullanıcının seçiminin iptal edilmesi gerektiğini gösterir. Kullanıcı bir öğeye tıklar ve sonra birleşik giriş kutusunun liste kutusunu gizlemek için başka bir pencereye veya denetime tıklar. Bu bildirim iletisi, kullanıcının seçimininCBN_CLOSEUPyoksayılması gerektiğini belirtmek için bildirim iletisinden önce gönderilir. VeyaCBN_SELENDCANCELCBN_SELENDOKbildirim iletisi, bildirim iletisi gönderilmeseCBN_CLOSEUPbile gönderilir (stile sahipCBS_SIMPLEbir birleşik giriş kutusunda olduğu gibi).ON_CBN_SELENDOKKullanıcı bir öğe seçer ve enter tuşuna basar veya birleşik giriş kutusunun liste kutusunu gizlemek için AŞAĞI OK tuşuna tıklar. Bu bildirim iletisi, kullanıcının seçimininCBN_CLOSEUPgeçerli olarak kabul edilmesi gerektiğini belirtmek için iletiden önce gönderilir. VeyaCBN_SELENDCANCELCBN_SELENDOKbildirim iletisi, bildirim iletisi gönderilmeseCBN_CLOSEUPbile gönderilir (stile sahipCBS_SIMPLEbir birleşik giriş kutusunda olduğu gibi).ON_CBN_KILLFOCUSBirleşik giriş kutusu giriş odağını kaybediyor.ON_CBN_SELCHANGEKullanıcının liste kutusuna tıklaması veya ok tuşlarını kullanarak seçimi değiştirmesi sonucunda birleşik giriş kutusunun liste kutusundaki seçim değiştirilmek üzeredir. Bu ileti işlenirken, birleşik giriş kutusunun düzenleme denetimindeki metin yalnızca veya başka bir benzer işlev aracılığıylaGetLBTextalınabilir.GetWindowTextkullanılamaz.ON_CBN_SETFOCUSBirleşik giriş kutusu giriş odağını alır.
İletişim kutusunda (iletişim kutusu kaynağı aracılığıyla) bir CComboBox nesne oluşturursanız, CComboBox kullanıcı iletişim kutusunu kapattığında nesne otomatik olarak yok edilir.
Bir nesneyi başka bir CComboBox pencere nesnesine eklerseniz, yok etmeniz gerekmez. Nesneyi yığında oluşturursanız CComboBox , nesne otomatik olarak yok edilir. işlevini kullanarak CComboBox yığında nesnesi oluşturursanıznew, Windows birleşik giriş kutusu yok edildiğinde yok etmek için nesne üzerinde çağrısında delete bulunması gerekir.
Not ve WM_KEYDOWN iletileri işlemek WM_CHAR istiyorsanız birleşik giriş kutusunun düzenleme ve liste kutusu denetimlerini alt sınıfa eklemeniz, ve CEdit'den CListBox sınıf türetmelisiniz ve bu iletiler için işleyicileri türetilmiş sınıflara eklemeniz gerekir. Daha fazla bilgi için bkz. CWnd::SubclassWindow.
Devralma Hiyerarşisi
CComboBox
Requirements
Üstbilgi:afxwin.h
CComboBox::AddString
Birleşik giriş kutusunun liste kutusuna bir dize ekler.
int AddString(LPCTSTR lpszString);
Parameters
lpszString
Eklenecek null ile sonlandırılan dizeyi gösterir.
Dönüş Değeri
Dönüş değeri 0'dan büyük veya buna eşitse, liste kutusundaki dizenin sıfır tabanlı dizinidir. Dönüş değeri bir hata oluşursa, CB_ERR dönüş değeri ise CB_ERRSPACE yeni dizeyi depolamak için yeterli alan olmamasıdır.
Remarks
Liste kutusu stille CBS_SORT oluşturulmadıysa, dize listenin sonuna eklenir. Aksi takdirde, dize listeye eklenir ve liste sıralanır.
Note
Bu işlev Windows ComboBoxEx denetimi tarafından desteklenmez. Bu denetim hakkında daha fazla bilgi için bkz ComboBoxEx . Windows SDK'sında denetimler .
Listede belirli bir konuma dize eklemek için üye işlevini kullanın InsertString .
Example
// Add 20 items to the combo box.
CString str;
for (int i = 0; i < 20; i++)
{
str.Format(_T("item string %d"), i);
m_pComboBox->AddString(str);
}
CComboBox::CComboBox
Bir CComboBox nesne oluşturur.
CComboBox();
Example
// Declare a local CComboBox object.
CComboBox myComboBox;
// Declare a dynamic CComboBox object.
CComboBox *pmyComboBox = new CComboBox;
CComboBox::Clear
Birleşik giriş kutusunun düzenleme denetiminde geçerli seçimi (varsa) siler (temizler).
void Clear();
Remarks
Geçerli seçimi silmek ve silinen içeriği Pano'ya yerleştirmek için üye işlevini kullanın Cut .
Example
// Delete all of the text from the combo box's edit control.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Clear();
CComboBox::CompareItem
Sıralanmış sahip çizim birleşik giriş kutusunun liste kutusu bölümünde yeni bir öğenin göreli konumunu belirlemek için çerçeve tarafından çağrılır.
virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct);
Parameters
lpCompareItemStruct
Bir yapıya uzun bir COMPAREITEMSTRUCT işaretçi.
Dönüş Değeri
Yapıda COMPAREITEMSTRUCT açıklanan iki öğenin göreli konumunu gösterir. Aşağıdaki değerlerden herhangi biri olabilir:
| Value | Meaning |
|---|---|
| - 1 | Öğe 1, 2. öğeden önce sıralanır. |
| 0 | Öğe 1 ve öğe 2 aynı şekilde sıralanır. |
| 1 | Öğe 1, 2. öğeden sonra sıralanır. |
açıklaması CWnd::OnCompareItemiçin bkzCOMPAREITEMSTRUCT. .
Remarks
Varsayılan olarak, bu üye işlevi hiçbir şey yapmaz. Stile sahip çiz birleşik giriş kutusu oluşturursanız, çerçevenin LBS_SORT liste kutusuna eklenen yeni öğeleri sıralamasına yardımcı olması için bu üye işlevini geçersiz kılmanız gerekir.
Example
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example compares two items using strcmp to sort items in reverse
// alphabetical order. The combo box control was created with the
// following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
int CMyComboBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
int iComp = 0;
ASSERT(lpCompareItemStruct->CtlType == ODT_COMBOBOX);
LPCTSTR lpszText1 = (LPCTSTR)lpCompareItemStruct->itemData1;
ASSERT(lpszText1 != NULL);
LPCTSTR lpszText2 = (LPCTSTR)lpCompareItemStruct->itemData2;
ASSERT(lpszText2 != NULL);
if (NULL != lpszText1 && NULL != lpszText2)
{
iComp = _tcscmp(lpszText2, lpszText1);
}
return iComp;
}
CComboBox::Copy
Birleşik giriş kutusunun düzenleme denetimindeki geçerli seçimi (varsa) Pano'ya CF_TEXT biçiminde kopyalar.
void Copy();
Example
// Copy all of the text from the combo box's edit control
// to the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Copy();
CComboBox::Create
Birleşik giriş kutusunu oluşturur ve nesneye CComboBox ekler.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameters
dwStyle
Birleşik giriş kutusunun stilini belirtir. Kutuya birleşik giriş kutusu stillerinin herhangi bir bileşimini uygulayın.
rect
Birleşik giriş kutusunun konumunu ve boyutunu gösterir. Bir RECT yapı veya CRect nesne olabilir.
pParentWnd
Birleşik giriş kutusunun üst penceresini belirtir (genellikle bir CDialog). Bu olmamalıdır NULL.
nID
Birleşik giriş kutusunun denetim kimliğini belirtir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Remarks
İki adımda bir CComboBox nesne oluşturursunuz. İlk olarak oluşturucuyu çağırın ve ardından Windows birleşik giriş kutusunu oluşturan ve nesnesine ekleyen öğesini çağırınCreateCComboBox.
Yürütülürken Create , Windows birleşik giriş kutusuna WM_NCCREATE, WM_CREATE, WM_NCCALCSIZEve WM_GETMINMAXINFO iletilerini gönderir.
Bu iletiler varsayılan olarak temel sınıftaki OnNcCreate, OnCreate, OnNcCalcSizeve OnGetMinMaxInfo üye işlevleri CWnd tarafından işlenir. Varsayılan ileti işlemeyi genişletmek için öğesinden CComboBoxbir sınıf türetin, yeni sınıfa bir ileti eşlemesi ekleyin ve önceki ileti işleyicisi üye işlevlerini geçersiz kılın. Örneğin, yeni bir sınıf için gerekli başlatmayı gerçekleştirmek için öğesini geçersiz kılın OnCreate.
Birleşik giriş kutusu denetimine aşağıdaki pencere stillerini uygulayın. :
WS_CHILDHer zamanWS_VISIBLEGeneldeWS_DISABLEDNadirenWS_VSCROLLBirleşik giriş kutusuna liste kutusu için dikey kaydırma eklemek içinWS_HSCROLLBirleşik giriş kutusuna liste kutusu için yatay kaydırma eklemek içinWS_GROUPDenetimleri gruplandırmak içinWS_TABSTOPBirleşik giriş kutusunu sekme sırasına eklemek için
Example
m_pComboBox->Create(
WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST,
CRect(10, 10, 200, 100), pParentWnd, 1);
CComboBox::Cut
Birleşik giriş kutusu düzenleme denetiminde geçerli seçimi siler (keser) ve silinen metni Pano'ya CF_TEXT biçiminde kopyalar.
void Cut();
Remarks
Silinen metni Pano'ya yerleştirmeden geçerli seçimi silmek için üye işlevini çağırın Clear .
Example
// Delete all of the text from the combo box's edit control and copy it
// to the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Cut();
CComboBox::DeleteItem
Kullanıcı sahip çizim CComboBox nesnesinden bir öğeyi sildiğinde veya birleşik giriş kutusunu yok ettiğinde çerçeve tarafından çağrılır.
virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct);
Parameters
lpDeleteItemStruct
Silinen öğe hakkında bilgi içeren bir Windows DELETEITEMSTRUCT yapısına uzun bir işaretçi. Bu yapının açıklaması için bkz CWnd::OnDeleteItem .
Remarks
Bu işlevin varsayılan uygulaması hiçbir şey yapmaz. Gerektiğinde birleşik giriş kutusunu yeniden çizmek için bu işlevi geçersiz kılın.
Example
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example simply dumps the item's text. The combo box control was
// created with the following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
void CMyComboBox::DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct)
{
ASSERT(lpDeleteItemStruct->CtlType == ODT_COMBOBOX);
LPTSTR lpszText = (LPTSTR)lpDeleteItemStruct->itemData;
ASSERT(lpszText != NULL);
AFXDUMP(lpszText);
}
CComboBox::DeleteString
Birleşik giriş kutusundan öğeyi konumunda nIndex siler.
int DeleteString(UINT nIndex);
Parameters
nIndex
Silinecek dizenin dizinini belirtir.
Dönüş Değeri
Dönüş değeri 0'dan büyük veya buna eşitse, listede kalan dizelerin sayısıdır. Dönüş değeri, listedeki öğe sayısından daha büyük bir dizin belirtiyorsa CB_ERR değeridirnIndex.
Remarks
İzleyen nIndex tüm öğeler artık bir konum aşağı doğru ilerler. Örneğin, birleşik giriş kutusu iki öğe içeriyorsa, ilk öğenin silinmesi kalan öğenin artık ilk konumda olmasına neden olur.
nIndexİlk konumdaki öğe için =0.
Example
// Delete every item from the combo box.
for (int i = m_pComboBox->GetCount() - 1; i >= 0; i--)
{
m_pComboBox->DeleteString(i);
}
CComboBox::Dir
Birleşik giriş kutusunun liste kutusuna dosya adlarının veya sürücülerin listesini ekler.
int Dir(
UINT attr,
LPCTSTR lpszWildCard);
Parameters
attr
içinde açıklanan enum değerlerin CFile::GetStatus herhangi bir bileşimi veya aşağıdaki değerlerin herhangi bir bileşimi olabilir:
DDL_READWRITEDosyadan okunabilir veya bu dosyaya yazılabilir.DDL_READONLYDosya' dan okunabilir ancak bu dosyaya yazılamaz.DDL_HIDDENDosya gizlidir ve dizin listesinde görünmez.DDL_SYSTEMDosya bir sistem dosyasıdır.DDL_DIRECTORYtarafındanlpszWildCardbelirtilen ad bir dizin belirtir.DDL_ARCHIVEDosya arşivlendi.DDL_DRIVEStarafından belirtilen adla eşleşen tüm sürücüleri dahil edinlpszWildCard.DDL_EXCLUSIVEÖzel bayrak. Özel kullanım bayrağı ayarlanırsa, yalnızca belirtilen türdeki dosyalar listelenir. Aksi takdirde, belirtilen türdeki dosyalar "normal" dosyalara ek olarak listelenir.
lpszWildCard
Bir dosya belirtimi dizesini gösterir. Dize joker karakterler içerebilir (örneğin, *.*).
Dönüş Değeri
Dönüş değeri 0'dan büyük veya buna eşitse, listeye eklenen son dosya adının sıfır tabanlı dizinidir. Dönüş değeri bir hata oluşursa, CB_ERR dönüş değeri ise CB_ERRSPACE yeni dizeleri depolamak için yeterli alan olmamasıdır.
Remarks
Bu işlev Windows ComboBoxEx denetimi tarafından desteklenmez. Bu denetim hakkında daha fazla bilgi için bkz ComboBoxEx . Windows SDK'sında denetimler .
Example
// Add all the files and directories in the windows directory.
TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
VERIFY(0 < ::GetWindowsDirectory(lpszWinPath, MAX_PATH));
// Make the windows directory the current directory.
::GetCurrentDirectory(MAX_PATH, lpszOldPath);
::SetCurrentDirectory(lpszWinPath);
m_pComboBox->ResetContent();
m_pComboBox->Dir(DDL_READWRITE | DDL_DIRECTORY, _T("*.*"));
// Reset the current directory to its previous path.
::SetCurrentDirectory(lpszOldPath);
CComboBox::DrawItem
Sahip çizim birleşik giriş kutusunun görsel bir yönü değiştiğinde çerçeve tarafından çağrılır.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parameters
lpDrawItemStruct
Gerekli çizim türü hakkında bilgi içeren bir DRAWITEMSTRUCT yapı işaretçisi.
Remarks
Yapının itemAction üyesi DRAWITEMSTRUCT , gerçekleştirilecek çizim eylemini tanımlar. Bu yapının açıklaması için bkz CWnd::OnDrawItem .
Varsayılan olarak, bu üye işlevi hiçbir şey yapmaz. Sahip çizim CComboBox nesnesi için çizim uygulamak için bu üye işlevini geçersiz kılın. Bu üye işlevi sonlandırilmeden önce, uygulamanın içinde lpDrawItemStructsağlanan görüntüleme bağlamı için seçilen tüm grafik cihaz arabirimi (GDI) nesnelerini geri yüklemesi gerekir.
Example
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example draws an item's text centered vertically and horizontally. The
// combo box control was created with the following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
void CMyComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
ASSERT(lpDrawItemStruct->CtlType == ODT_COMBOBOX);
LPCTSTR lpszText = (LPCTSTR)lpDrawItemStruct->itemData;
ASSERT(lpszText != NULL);
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
// Save these value to restore them when done drawing.
COLORREF crOldTextColor = dc.GetTextColor();
COLORREF crOldBkColor = dc.GetBkColor();
// If this item is selected, set the background color
// and the text color to appropriate values. Erase
// the rect by filling it with the background color.
if ((lpDrawItemStruct->itemAction & ODA_SELECT) &&
(lpDrawItemStruct->itemState & ODS_SELECTED))
{
dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
dc.SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
dc.FillSolidRect(&lpDrawItemStruct->rcItem, ::GetSysColor(COLOR_HIGHLIGHT));
}
else
{
dc.FillSolidRect(&lpDrawItemStruct->rcItem, crOldBkColor);
}
// Draw the text.
dc.DrawText(
lpszText,
(int)_tcslen(lpszText),
&lpDrawItemStruct->rcItem,
DT_CENTER | DT_SINGLELINE | DT_VCENTER);
// Reset the background color and the text color back to their
// original values.
dc.SetTextColor(crOldTextColor);
dc.SetBkColor(crOldBkColor);
dc.Detach();
}
CComboBox::FindString
Birleşik giriş kutusunun liste kutusunda belirtilen ön eki içeren ilk dizeyi bulur ancak seçmez.
int FindString(
int nStartAfter,
LPCTSTR lpszString) const;
Parameters
nStartAfter
Aranacak ilk öğeden önce öğenin sıfır tabanlı dizinini içerir. Arama liste kutusunun en altına ulaştığında, liste kutusunun en üstünden tarafından nStartAfterbelirtilen öğeye geri döner. -1 ise, liste kutusunun tamamı baştan aranırsa.
lpszString
Aranacak ön eki içeren null ile sonlandırılan dizeye işaret eder. Arama büyük/küçük harflerden bağımsızdır, bu nedenle bu dize büyük ve küçük harflerin herhangi bir bileşimini içerebilir.
Dönüş Değeri
Dönüş değeri 0'dan büyük veya 0'a eşitse, eşleşen öğenin sıfır tabanlı dizinidir. Bu, CB_ERR aramanın başarısız olmasıdır.
Remarks
Bu işlev Windows ComboBoxEx denetimi tarafından desteklenmez. Bu denetim hakkında daha fazla bilgi için bkz ComboBoxEx . Windows SDK'sında denetimler .
Example
// The string to match.
LPCTSTR lpszmyString = _T("item");
// Delete all items that begin with the specified string.
int nItem = 0;
while ((nItem = m_pComboBox->FindString(nItem, lpszmyString)) != CB_ERR)
{
m_pComboBox->DeleteString(nItem);
}
CComboBox::FindStringExact
FindStringExact içinde belirtilen lpszFinddizeyle eşleşen ilk liste kutusu dizesini (birleşik giriş kutusunda) bulmak için üye işlevini çağırın.
int FindStringExact(
int nIndexStart,
LPCTSTR lpszFind) const;
Parameters
nIndexStart
Aranacak ilk öğeden önce öğenin sıfır tabanlı dizinini belirtir. Arama liste kutusunun en altına ulaştığında, liste kutusunun en üstünden tarafından nIndexStartbelirtilen öğeye geri döner. -1 ise nIndexStart , liste kutusunun tamamı baştan aranırsa.
lpszFind
Aranacak null ile sonlandırılan dizeyi gösterir. Bu dize, uzantı da dahil olmak üzere tam bir dosya adı içerebilir. Arama büyük/küçük harfe duyarlı olmadığından, bu dize büyük ve küçük harflerin herhangi bir bileşimini içerebilir.
Dönüş Değeri
Eşleşen öğenin sıfır tabanlı dizini veya CB_ERR arama başarısız olduysa.
Remarks
Birleşik giriş kutusu sahip çizim stiliyle oluşturulduysa ancak stil olmadan CBS_HASSTRINGS çift FindStringExact kelime değerini lpszFind değeriyle eşleştirmeye çalışır.
Example
// The string to match.
LPCTSTR lpszmyExactString = _T("item 5");
// Delete all items that exactly match the specified string.
int nDex = 0;
while ((nDex = m_pComboBox->FindStringExact(nDex, lpszmyExactString)) != CB_ERR)
{
m_pComboBox->DeleteString(nDex);
}
CComboBox::GetComboBoxInfo
Nesnenin CComboBox bilgilerini alır.
BOOL GetComboBoxInfo(PCOMBOBOXINFO pcbi) const;
Parameters
pcbi
Yapı işaretçisi COMBOBOXINFO .
Dönüş Değeri
Başarılı olduğunda, TRUE başarısız olduğunda döndürürFALSE.
Remarks
Bu üye işlevi, Windows SDK'sında açıklandığı gibi iletinin CB_GETCOMBOBOXINFO işlevselliğine öykünmektedir.
CComboBox::GetCount
Birleşik giriş kutusunun liste kutusu bölümündeki öğe sayısını almak için bu üye işlevini çağırın.
int GetCount() const;
Dönüş Değeri
Öğe sayısı. Döndürülen sayı, son öğenin dizin değerinden büyüktür (dizin sıfır tabanlıdır). Bir hata oluşursa bu CB_ERR durum geçerli olur.
Example
// Add 10 items to the combo box.
CString strItem;
for (int i = 0; i < 10; i++)
{
strItem.Format(_T("item %d"), i);
m_pComboBox->AddString(strItem);
}
// Verify the 10 items were added to the combo box.
ASSERT(m_pComboBox->GetCount() == 10);
CComboBox::GetCueBanner
Birleşik giriş kutusu denetimi için görüntülenen ipucu metnini alır.
CString GetCueBanner() const;
BOOL GetCueBanner(
LPTSTR lpszText,
int cchText) const;
Parameters
lpszText
[out] İşaret başlığı metnini alan arabelleğe yönelik işaretçi.
cchText
[in] Parametrenin işaret olduğu arabelleğin lpszText boyutu.
Dönüş Değeri
İlk aşırı yüklemede, varsa ipucu başlık metnini içeren bir CString nesne; yoksa, uzunluğu sıfır olan bir CString nesne.
-or-
İkinci aşırı yüklemede, TRUE bu yöntem başarılı olursa; aksi takdirde , FALSE.
Remarks
İpucu metni, birleşik giriş kutusu denetiminin giriş alanında görüntülenen bir istemdir. Kullanıcı giriş sağlayana kadar ipucu metni görüntülenir.
Bu yöntem, Windows SDK'sında açıklanan iletiyi gönderir CB_GETCUEBANNER .
CComboBox::GetCurSel
Birleşik giriş kutusundaki hangi öğenin seçili olduğunu belirlemek için bu üye işlevini çağırın.
int GetCurSel() const;
Dönüş Değeri
Birleşik giriş kutusunun liste kutusunda seçili durumdaki öğenin sıfır tabanlı dizini veya CB_ERR seçili öğe yoksa.
Remarks
GetCurSel listeye bir dizin döndürür.
Example
// Select the next item of the currently selected item
// in the combo box.
int nIndex = m_pComboBox->GetCurSel();
int nCount = m_pComboBox->GetCount();
if ((nIndex != CB_ERR) && (nCount > 1))
{
if (++nIndex < nCount)
m_pComboBox->SetCurSel(nIndex);
else
m_pComboBox->SetCurSel(0);
}
CComboBox::GetDroppedControlRect
GetDroppedControlRect Açılan birleşik giriş kutusunun görünür (açılan) liste kutusunun ekran koordinatlarını almak için üye işlevini çağırın.
void GetDroppedControlRect(LPRECT lprect) const;
Parameters
lprect
Koordinatları almak için rect yapısına işaret eder.
Example
// This example move a combo box so that the upper left
// corner of the combo box is at a specific point.
// The point to move the combo box to.
CPoint myPoint(30, 10);
CRect r;
m_pComboBox->GetDroppedControlRect(&r);
m_pComboBox->GetParent()->ScreenToClient(&r);
r.OffsetRect(myPoint - r.TopLeft());
m_pComboBox->MoveWindow(&r);
CComboBox::GetDroppedState
GetDroppedState Açılan birleşik giriş kutusunun liste kutusunun görünür (bırakılan) olup olmadığını belirlemek için üye işlevini çağırın.
BOOL GetDroppedState() const;
Dönüş Değeri
Liste kutusu görünür durumdaysa sıfır olmayan; aksi takdirde 0.
Example
// Show the dropdown list box if it is not already dropped.
if (!m_pComboBox->GetDroppedState())
m_pComboBox->ShowDropDown(TRUE);
CComboBox::GetDroppedWidth
Birleşik giriş kutusunun liste kutusunun izin verilen en düşük genişliğini piksel cinsinden almak için bu işlevi çağırın.
int GetDroppedWidth() const;
Dönüş Değeri
Başarılı olursa, izin verilen en düşük genişlik piksel cinsinden; aksi takdirde , CB_ERR.
Remarks
Bu işlev yalnızca veya CBS_DROPDOWN stiline sahip birleşik giriş kutuları için CBS_DROPDOWNLIST geçerlidir.
Varsayılan olarak, açılan liste kutusunun izin verilen en düşük genişliği 0'dır. İzin verilen en düşük genişlik çağrılarak SetDroppedWidthayarlanabilir. Birleşik giriş kutusunun liste kutusu bölümü görüntülendiğinde, genişliği izin verilen en düşük genişlik veya birleşik giriş kutusu genişliği kadar büyüktür.
Example
örneğine SetDroppedWidthbakın.
CComboBox::GetEditSel
Birleşik giriş kutusunun düzenleme denetimindeki geçerli seçimin başlangıç ve bitiş karakter konumlarını alır.
DWORD GetEditSel() const;
Dönüş Değeri
Düşük sıralı sözcüğün başlangıç konumunu ve yüksek sıralı sözcükte seçimin sonundan sonra seçilmeyen ilk karakterin konumunu içeren 32 bitlik bir değer. Bu işlev düzenleme denetimi olmayan bir birleşik giriş kutusunda kullanılıyorsa döndürülür CB_ERR .
Example
DWORD dwSel;
// Set the selection to be all characters after the current selection.
if ((dwSel = m_MyComboBox.GetEditSel()) != CB_ERR)
{
m_MyComboBox.SetEditSel(HIWORD(dwSel), -1);
}
CComboBox::GetExtendedUI
GetExtendedUI Bir birleşik giriş kutusunun varsayılan kullanıcı arabirimine mi yoksa genişletilmiş kullanıcı arabirimine mi sahip olduğunu belirlemek için üye işlevini çağırın.
BOOL GetExtendedUI() const;
Dönüş Değeri
Birleşik giriş kutusunda genişletilmiş kullanıcı arabirimi varsa sıfır olmayan; aksi takdirde 0.
Remarks
Genişletilmiş kullanıcı arabirimi aşağıdaki yollarla tanımlanabilir:
Statik denetime tıklanması yalnızca stile sahip
CBS_DROPDOWNLISTbirleşik giriş kutuları için liste kutusunu görüntüler.AŞAĞI OK tuşuna basıldığında liste kutusu görüntülenir (F4 devre dışıdır).
Öğe listesi görünür olmadığında statik denetimde kaydırma devre dışı bırakılır (ok tuşları devre dışı bırakılır).
Example
// Use the extended UI if it is not already set.
if (!m_pComboBox->GetExtendedUI())
m_pComboBox->SetExtendedUI(TRUE);
CComboBox::GetHorizontalExtent
Birleşik giriş kutusundan, birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabildiği piksel cinsinden genişliği alır.
UINT GetHorizontalExtent() const;
Dönüş Değeri
Birleşik giriş kutusunun liste kutusu bölümünün kaydırılabilir genişliği (piksel cinsinden).
Remarks
Bu yalnızca birleşik giriş kutusunun liste kutusu bölümünde yatay kaydırma çubuğu varsa geçerlidir.
Example
// Find the longest string in the combo box.
CString strText;
CSize sz;
UINT dxText = 0;
CDC *pDCCombo = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->GetLBText(i, strText);
sz = pDCCombo->GetTextExtent(strText);
if (sz.cx > (LONG)dxText)
dxText = sz.cx;
}
m_pComboBox->ReleaseDC(pDCCombo);
// Set the horizontal extent only if the current extent is not large enough.
if (m_pComboBox->GetHorizontalExtent() < dxText)
{
m_pComboBox->SetHorizontalExtent(dxText);
ASSERT(m_pComboBox->GetHorizontalExtent() == dxText);
}
CComboBox::GetItemData
Belirtilen birleşik giriş kutusu öğesiyle ilişkili uygulama tarafından sağlanan 32 bit değeri alır.
DWORD_PTR GetItemData(int nIndex) const;
Parameters
nIndex
Birleşik giriş kutusunun liste kutusundaki bir öğenin sıfır tabanlı dizinini içerir.
Dönüş Değeri
Öğeyle ilişkili 32 bit değer veya CB_ERR bir hata oluşursa.
Remarks
32 bit değeri, üye dwItemData işlev çağrısının parametresiyle SetItemData ayarlanabilir.
GetItemDataPtr Alınacak 32 bit değer bir işaretçi (void*) ise üye işlevini kullanın.
Example
// If any item's data is equal to zero then reset it to -1.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
if (m_pComboBox->GetItemData(i) == 0)
{
m_pComboBox->SetItemData(i, (DWORD)-1);
}
}
CComboBox::GetItemDataPtr
Belirtilen birleşik giriş kutusu öğesiyle ilişkilendirilmiş, uygulama tarafından sağlanan 32 bit değeri işaretçi (void*) olarak alır.
void* GetItemDataPtr(int nIndex) const;
Parameters
nIndex
Birleşik giriş kutusunun liste kutusundaki bir öğenin sıfır tabanlı dizinini içerir.
Dönüş Değeri
Bir işaretçi veya hata oluşursa -1 alır.
Example
LPVOID lpmyPtr = m_pComboBox->GetItemDataPtr(5);
// Check all the items in the combo box; if an item's
// data pointer is equal to my pointer then reset it to NULL.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
if (m_pComboBox->GetItemDataPtr(i) == lpmyPtr)
{
m_pComboBox->SetItemDataPtr(i, NULL);
}
}
CComboBox::GetItemHeight
GetItemHeight Bir birleşik giriş kutusundaki liste öğelerinin yüksekliğini almak için üye işlevini çağırın.
int GetItemHeight(int nIndex) const;
Parameters
nIndex
Yüksekliği alınacak birleşik giriş kutusunun bileşenini belirtir.
nIndex Parametre -1 ise, birleşik giriş kutusunun düzenleme denetimi (veya statik metin) bölümünün yüksekliği alınır. Birleşik giriş kutusu stiline CBS_OWNERDRAWVARIABLE sahipse, nIndex yüksekliği alınacak olan liste öğesinin sıfır tabanlı dizinini belirtir. Aksi takdirde, nIndex 0 olarak ayarlanmalıdır.
Dönüş Değeri
Birleşik giriş kutusunda belirtilen öğenin piksel cinsinden yüksekliği. Dönüş değeri bir CB_ERR hata oluşursa olur.
Example
// Set the height of every item so the item
// is completely visible.
CString strLBText;
CSize size;
CDC *pDC = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->GetLBText(i, strLBText);
size = pDC->GetTextExtent(strLBText);
// Only want to set the item height if the current height
// is not big enough.
if (m_pComboBox->GetItemHeight(i) < size.cy)
m_pComboBox->SetItemHeight(i, size.cy);
}
m_pComboBox->ReleaseDC(pDC);
CComboBox::GetLBText
Birleşik giriş kutusunun liste kutusundan bir dize alır.
int GetLBText(
int nIndex,
LPTSTR lpszText) const;
void GetLBText(
int nIndex,
CString& rString) const;
Parameters
nIndex
Kopyalanacak liste kutusu dizesinin sıfır tabanlı dizinini içerir.
lpszText
Dizeyi almak için bir arabelleğe işaret eden. Arabellek, dize için yeterli alana ve sonlandırıcı null karaktere sahip olmalıdır.
rString
başvurusu CString.
Dönüş Değeri
Sonlandırıcı null karakter hariç dizenin uzunluğu (bayt cinsinden).
nIndex Geçerli bir dizin belirtmezse, dönüş değeri olurCB_ERR.
Remarks
Bu üye işlevinin ikinci biçimi bir CString nesneyi öğenin metniyle doldurur.
Geçersizse nIndex , bu işlev bir E_INVALIDARG özel durum oluşturur (hata kodu: -2147024809, 0x80070057).
Example
// Dump all of the items in the combo box.
CString str1, str2;
int n;
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
n = m_pComboBox->GetLBTextLen(i);
m_pComboBox->GetLBText(i, str1.GetBuffer(n));
str1.ReleaseBuffer();
str2.Format(_T("item %d: %s\r\n"), i, str1.GetBuffer(0));
AFXDUMP(str2);
}
CComboBox::GetLBTextLen
Birleşik giriş kutusunun liste kutusundaki dizenin uzunluğunu alır.
int GetLBTextLen(int nIndex) const;
Parameters
nIndex
Liste kutusu dizesinin sıfır tabanlı dizinini içerir.
Dönüş Değeri
Sonlandırıcı null karakter hariç, dizenin bayt cinsinden uzunluğu.
nIndex Geçerli bir dizin belirtmezse, dönüş değeri olurCB_ERR.
Example
örneğine CComboBox::GetLBTextbakın.
CComboBox::GetLocale
Birleşik giriş kutusu tarafından kullanılan yerel ayarı alır.
LCID GetLocale() const;
Dönüş Değeri
Birleşik giriş kutusundaki dizeler için yerel ayar tanımlayıcısı (LCID) değeri.
Remarks
Yerel ayar, örneğin sıralanmış birleşik giriş kutusundaki dizelerin sıralama düzenini belirlemek için kullanılır.
Example
örneğine CComboBox::SetLocalebakın.
CComboBox::GetMinVisible
Geçerli birleşik giriş kutusu denetiminin açılan listesinde en az görünür öğe sayısını alır.
int GetMinVisible() const;
Dönüş Değeri
Geçerli açılan listedeki en az görünür öğe sayısı.
Remarks
Bu yöntem, Windows SDK'sında açıklanan iletiyi gönderir CB_GETMINVISIBLE .
CComboBox::GetTopIndex
Birleşik giriş kutusunun liste kutusu bölümündeki ilk görünür öğenin sıfır tabanlı dizinini alır.
int GetTopIndex() const;
Dönüş Değeri
Başarılı olursa birleşik giriş kutusunun liste kutusu bölümündeki ilk görünür öğenin sıfır tabanlı dizini, CB_ERR aksi takdirde.
Remarks
Başlangıçta, 0 öğesi liste kutusunun en üstünde yer alır, ancak liste kutusu kaydırılırsa, en üstte başka bir öğe olabilir.
Example
// Want an item in the bottom half to be the first visible item.
int nTop = m_pComboBox->GetCount() / 2;
if (m_pComboBox->GetTopIndex() < nTop)
{
m_pComboBox->SetTopIndex(nTop);
ASSERT(m_pComboBox->GetTopIndex() == nTop);
}
CComboBox::InitStorage
Liste kutusu öğelerini birleşik giriş kutusunun liste kutusu bölümünde depolamak için bellek ayırır.
int InitStorage(
int nItems,
UINT nBytes);
Parameters
nItems
Eklenecek öğe sayısını belirtir.
nBytes
Öğe dizeleri için ayrılacak bellek miktarını bayt cinsinden belirtir.
Dönüş Değeri
Başarılı olursa, birleşik giriş kutusunun liste kutusu bölümünün bellek yeniden ayırma gerekmeden önce depolayabilecekleri en fazla öğe sayısıdır, aksi takdirde CB_ERRSPACEyeterli bellek olmadığı anlamına gelir.
Remarks
öğesinin liste kutusu bölümüne çok sayıda öğe eklemeden önce bu işlevi çağırın CComboBox.
Yalnızca Windows 95/98: wParam Parametre 16 bit değerlerle sınırlıdır. Bu, liste kutularının 32.767'den fazla öğe içeremeyeceği anlamına gelir. Öğe sayısı kısıtlanmış olsa da, liste kutusundaki öğelerin toplam boyutu yalnızca kullanılabilir bellekle sınırlıdır.
Bu işlev, çok sayıda öğe (100'den fazla) içeren liste kutularının başlatılmasını hızlandırmaya yardımcı olur. Sonraki , AddStringve InsertString işlevlerinin mümkün olan en kısa süreyi alması için Dirbelirtilen bellek miktarını önceden ayırır. Parametreler için tahminleri kullanabilirsiniz. Fazla tahmin ederseniz, bazı ek bellek ayrılır; hafife alırsanız, normal ayırma önceden tahsis edilen tutarı aşan öğeler için kullanılır.
Example
// Initialize the storage of the combo box to be 256 strings with
// about 10 characters per string, performance improvement.
int nAlloc = pmyComboBox->InitStorage(256, 10);
ASSERT(nAlloc != CB_ERRSPACE);
// Add 256 items to the combo box.
CString strAdd;
for (int i = 0; i < 256; i++)
{
strAdd.Format(_T("item string %d"), i);
m_pComboBox->AddString(strAdd);
}
CComboBox::InsertString
Birleşik giriş kutusunun liste kutusuna bir dize ekler.
int InsertString(
int nIndex,
LPCTSTR lpszString);
Parameters
nIndex
Dizeyi alacak liste kutusundaki konuma sıfır tabanlı dizini içerir. Bu parametre -1 ise, dize listenin sonuna eklenir.
lpszString
Eklenecek null ile sonlandırılan dizeyi gösterir.
Dönüş Değeri
Dizenin eklendiği konumun sıfır tabanlı dizini. Dönüş değeri bir CB_ERR hata oluşursa olur. Dönüş değeri, CB_ERRSPACE yeni dizeyi depolamak için yeterli alan olmamasıdır.
Remarks
Üye işlevinin AddString aksine, InsertString üye işlevi stiline sahip bir listenin CBS_SORT sıralanmasına neden olmaz.
Note
Bu işlev Windows ComboBoxEx denetimi tarafından desteklenmez. Bu denetim hakkında daha fazla bilgi için bkz ComboBoxEx . Windows SDK'sında denetimler .
Example
// Insert items in between existing items.
CString strIns;
int nItems = m_pComboBox->GetCount();
for (int i = 0; i < nItems; i++)
{
strIns.Format(_T("item string %c"), (char)('A' + i));
m_pComboBox->InsertString(2 * i, strIns);
}
CComboBox::LimitText
Kullanıcının birleşik giriş kutusunun düzenleme denetimine girebileceği metnin bayt cinsinden uzunluğunu sınırlar.
BOOL LimitText(int nMaxChars);
Parameters
nMaxChars
Kullanıcının girebileceği metnin uzunluğunu (bayt cinsinden) belirtir. Bu parametre 0 ise, metin uzunluğu 65.535 bayt olarak ayarlanır.
Dönüş Değeri
Başarılı olursa sıfır olmayan. Stile CBS_DROPDOWNLIST sahip bir birleşik giriş kutusu veya düzenleme denetimi olmayan bir birleşik giriş kutusu için çağrılırsa, dönüş değeri olur CB_ERR.
Remarks
Birleşik giriş kutusunun stili CBS_AUTOHSCROLLyoksa, metin sınırını düzenleme denetiminin boyutundan daha büyük olacak şekilde ayarlamanın hiçbir etkisi olmaz.
LimitText yalnızca kullanıcının girebileceği metni sınırlar. İleti gönderildiğinde düzenleme denetiminde bulunan metinleri etkilemez ve liste kutusundaki bir dize seçildiğinde düzenleme denetimine kopyalanan metnin uzunluğunu etkilemez.
Example
// Limit the number of characters in the combo box's edit control to
// be the maximum number visible.
// Get the text metrics for the combo box; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDCCB = m_pComboBox->GetDC();
pDCCB->GetTextMetrics(&tm);
m_pComboBox->ReleaseDC(pDCCB);
CRect rect;
m_pComboBox->GetClientRect(&rect);
m_pComboBox->LimitText(rect.Width() / tm.tmAveCharWidth);
CComboBox::MeasureItem
Sahip çizim stiline sahip bir birleşik giriş kutusu oluşturulduğunda çerçeve tarafından çağrılır.
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parameters
lpMeasureItemStruct
Bir yapıya uzun bir MEASUREITEMSTRUCT işaretçi.
Remarks
Varsayılan olarak, bu üye işlevi hiçbir şey yapmaz. Bu üye işlevini geçersiz kılın ve birleşik giriş kutusundaki liste kutusunun boyutlarını Windows'a bildirmek için yapıyı doldurun MEASUREITEMSTRUCT . Birleşik giriş kutusu stille CBS_OWNERDRAWVARIABLE oluşturulursa, çerçeve liste kutusundaki her öğe için bu üye işlevini çağırır. Aksi takdirde, bu üye yalnızca bir kez çağrılır.
öğesinin CBS_OWNERDRAWFIXED üye işleviyle SubclassDlgItemCWnd oluşturulan sahip-çizim birleşik giriş kutusunda stilin kullanılması, programlama konusunda dikkat edilmesi gereken diğer noktaları içerir. Teknik Not 14'teki tartışmaya bakın.
Yapının açıklaması CWnd::OnMeasureItem için bkzMEASUREITEMSTRUCT.
Example
// CMyComboBox is my owner-drawn combo box derived from CComboBox. This
// example measures an item and sets the height of the item to twice the
// vertical extent of its text. The combo box control was created with
// the following code:
// pmyComboBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// CBS_SORT|CBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
void CMyComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
ASSERT(lpMeasureItemStruct->CtlType == ODT_COMBOBOX);
if (lpMeasureItemStruct->itemID != (UINT)-1)
{
LPCTSTR lpszText = (LPCTSTR)lpMeasureItemStruct->itemData;
ASSERT(lpszText != NULL);
CSize sz;
CDC *pDC = GetDC();
sz = pDC->GetTextExtent(lpszText);
ReleaseDC(pDC);
lpMeasureItemStruct->itemHeight = 2 * sz.cy;
}
}
CComboBox::Paste
Panodaki verileri geçerli imleç konumundaki birleşik giriş kutusunun düzenleme denetimine ekler.
void Paste();
Remarks
Veriler yalnızca Pano biçiminde veri CF_TEXT içeriyorsa eklenir.
Example
// Replace all of the text in the combo box's edit control with the text
// in the clipboard.
m_MyComboBox.SetEditSel(0, -1);
m_MyComboBox.Paste();
CComboBox::ResetContent
Liste kutusundan tüm öğeleri kaldırır ve birleşik giriş kutusunun denetimini düzenler.
void ResetContent();
Example
// Delete all the items from the combo box.
m_pComboBox->ResetContent();
ASSERT(m_pComboBox->GetCount() == 0);
CComboBox::SelectString
Birleşik giriş kutusunun liste kutusunda bir dize arar ve dize bulunursa, liste kutusunda dizeyi seçer ve düzenleme denetimine kopyalar.
int SelectString(
int nStartAfter,
LPCTSTR lpszString);
Parameters
nStartAfter
Aranacak ilk öğeden önce öğenin sıfır tabanlı dizinini içerir. Arama liste kutusunun en altına ulaştığında, liste kutusunun en üstünden tarafından nStartAfterbelirtilen öğeye geri döner. -1 ise, liste kutusunun tamamı baştan aranırsa.
lpszString
Aranacak ön eki içeren null ile sonlandırılan dizeye işaret eder. Arama büyük/küçük harflerden bağımsızdır, bu nedenle bu dize büyük ve küçük harflerin herhangi bir bileşimini içerebilir.
Dönüş Değeri
Dize bulunduysa seçili öğenin sıfır tabanlı dizini. Arama başarısız olduysa, dönüş değeri olur CB_ERR ve geçerli seçim değiştirilmez.
Remarks
Bir dize yalnızca ilk karakterleri (başlangıç noktasından) ön ek dizesindeki karakterlerle eşleşiyorsa seçilir.
ve SelectString üye işlevlerinin FindString her ikisinin de bir dize bulduğuna, ancak üye işlevinin SelectString de dizeyi seçtiğine dikkat edin.
Example
// The string to match.
LPCTSTR lpszSelect = _T("item");
// Select the item that begins with the specified string.
int nSel = m_pComboBox->SelectString(0, lpszSelect);
ASSERT(nSel != CB_ERR);
CComboBox::SetCueBanner
Birleşik giriş kutusu denetimi için görüntülenen ipucu metnini ayarlar.
BOOL SetCueBanner(LPCTSTR lpszText);
Parameters
lpszText
[in] İşaret metnini içeren null olarak sonlandırılan arabelleğe işaretçi.
Dönüş Değeri
TRUE yöntem başarılı olursa; aksi takdirde , FALSE.
Remarks
İpucu metni, birleşik giriş kutusu denetiminin giriş alanında görüntülenen bir istemdir. Kullanıcı giriş sağlayana kadar ipucu metni görüntülenir.
Bu yöntem, Windows SDK'sında açıklanan iletiyi gönderir CB_SETCUEBANNER .
Example
İlk kod örneği, m_comboboxbirleşik giriş kutusu denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar. Bu değişken sonraki örnekte kullanılır.
// Variable to access the combo box control
CComboBox m_combobox;
Sonraki kod örneği birleşik giriş kutusu denetimi için ipucu başlığını ayarlar.
// Add extra initialization here.
// Add 20 items to the combo box. The Resource Editor
// has already been used to set the style of the combo
// box to CBS_SORT.
CString str;
for (int i = 1; i <= 20; i++)
{
str.Format(_T("Item %2d"), i);
m_combobox.AddString(str);
}
// Set the minimum visible item
m_combobox.SetMinVisibleItems(10);
// Set the cue banner
m_combobox.SetCueBanner(_T("Select an item..."));
// End of extra initialization.
CComboBox::SetCurSel
Birleşik giriş kutusunun liste kutusunda bir dize seçer.
int SetCurSel(int nSelect);
Parameters
nSelect
Seçecek dizenin sıfır tabanlı dizinini belirtir. -1 ise, liste kutusundaki tüm geçerli seçimler kaldırılır ve düzenleme denetimi temizlenir.
Dönüş Değeri
İleti başarılı olursa seçilen öğenin sıfır tabanlı dizini. Dönüş değeri, CB_ERRnSelect listedeki öğe sayısından büyükse veya -1 olarak ayarlanırsa nSelect seçimi temizler.
Remarks
Gerekirse, liste kutusu dizeyi görünüme kaydırarak görüntüler (liste kutusu görünür durumdaysa). Birleşik giriş kutusunun düzenleme denetimindeki metin, yeni seçimi yansıtacak şekilde değiştirilir. Liste kutusundaki önceki tüm seçimler kaldırılır.
Example
// Select the last item in the combo box.
int nLast = pmyComboBox->GetCount() - 1;
if (nLast >= 0)
m_pComboBox->SetCurSel(nLast);
CComboBox::SetDroppedWidth
Birleşik giriş kutusunun liste kutusunun izin verilen en düşük genişliğini piksel olarak ayarlamak için bu işlevi çağırın.
int SetDroppedWidth(UINT nWidth);
Parameters
nWidth
Birleşik giriş kutusunun liste kutusu bölümünün izin verilen en düşük genişliği (piksel cinsinden).
Dönüş Değeri
Başarılı olursa, liste kutusunun yeni genişliği, aksi takdirde CB_ERR.
Remarks
Bu işlev yalnızca veya CBS_DROPDOWN stiline sahip birleşik giriş kutuları için CBS_DROPDOWNLIST geçerlidir.
Varsayılan olarak, açılan liste kutusunun izin verilen en düşük genişliği 0'dır. Birleşik giriş kutusunun liste kutusu bölümü görüntülendiğinde, genişliği izin verilen en düşük genişlik veya birleşik giriş kutusu genişliği kadar büyüktür.
Example
// Find the longest string in the combo box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC *pDC = m_pComboBox->GetDC();
CFont *pFont = m_pComboBox->GetFont();
// Select the listbox font, save the old font
CFont *pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->GetLBText(i, str);
sz = pDC->GetTextExtent(str);
// Add the avg width to prevent clipping
sz.cx += tm.tmAveCharWidth;
if (sz.cx > dx)
dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_pComboBox->ReleaseDC(pDC);
// Adjust the width for the vertical scroll bar and the left and right border.
dx += ::GetSystemMetrics(SM_CXVSCROLL) + 2 * ::GetSystemMetrics(SM_CXEDGE);
// Set the width of the list box so that every item is completely visible.
m_pComboBox->SetDroppedWidth(dx);
CComboBox::SetEditSel
Birleşik giriş kutusunun düzenleme denetimindeki karakterleri seçer.
BOOL SetEditSel(
int nStartChar,
int nEndChar);
Parameters
nStartChar
Başlangıç konumunu belirtir. Başlangıç konumu -1 olarak ayarlanırsa, var olan tüm seçimler kaldırılır.
nEndChar
Bitiş konumunu belirtir. Bitiş konumu -1 olarak ayarlanırsa, başlangıç konumundan düzenleme denetimindeki son karaktere kadar olan tüm metin seçilir.
Dönüş Değeri
Üye işlevi başarılı olursa sıfır olmayan; aksi takdirde 0. Bu, CB_ERR stile CComboBox sahipse CBS_DROPDOWNLIST veya liste kutusuna sahip değilse olur.
Remarks
Konumlar sıfır tabanlıdır. Düzenleme denetiminin ilk karakterini seçmek için 0 başlangıç konumunu belirtirsiniz. Bitiş konumu, seçecek son karakterden hemen sonraki karaktere yöneliktir. Örneğin, düzenleme denetiminin ilk dört karakterini seçmek için 0 başlangıç konumunu ve 4 bitiş konumunu kullanırsınız.
Note
Bu işlev Windows ComboBoxEx denetimi tarafından desteklenmez. Bu denetim hakkında daha fazla bilgi için bkz ComboBoxEx . Windows SDK'sında denetimler .
Example
örneğine CComboBox::GetEditSelbakın.
CComboBox::SetExtendedUI
veya stiline SetExtendedUI sahip birleşik giriş kutusu için varsayılan kullanıcı arabirimini veya genişletilmiş kullanıcı arabirimini seçmek için üye işlevini çağırınCBS_DROPDOWN.CBS_DROPDOWNLIST
int SetExtendedUI(BOOL bExtended = TRUE);
Parameters
bExtended
Birleşik giriş kutusunun genişletilmiş kullanıcı arabirimini mi yoksa varsayılan kullanıcı arabirimini mi kullanması gerektiğini belirtir. değeri TRUE genişletilmiş kullanıcı arabirimini seçer; değeri FALSE standart kullanıcı arabirimini seçer.
Dönüş Değeri
CB_OKAY işlemi başarılı olursa veya CB_ERR bir hata oluşursa.
Remarks
Genişletilmiş kullanıcı arabirimi aşağıdaki yollarla tanımlanabilir:
Statik denetime tıklanması yalnızca stile sahip
CBS_DROPDOWNLISTbirleşik giriş kutuları için liste kutusunu görüntüler.AŞAĞI OK tuşuna basıldığında liste kutusu görüntülenir (F4 devre dışıdır).
Öğe listesi görünür olmadığında statik denetimde kaydırma devre dışı bırakılır (ok tuşları devre dışı bırakılır).
Example
örneğine CComboBox::GetExtendedUIbakın.
CComboBox::SetHorizontalExtent
Birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabildiği genişliği piksel cinsinden ayarlar.
void SetHorizontalExtent(UINT nExtent);
Parameters
nExtent
Birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabildiği piksel sayısını belirtir.
Remarks
Liste kutusunun genişliği bu değerden küçükse, yatay kaydırma çubuğu liste kutusundaki öğeleri yatay olarak kaydıracaktır. Liste kutusunun genişliği bu değere eşit veya bundan büyükse, yatay kaydırma çubuğu gizlenir veya birleşik giriş kutusunda CBS_DISABLENOSCROLL stil varsa devre dışı bırakılır.
Example
// Find the longest string in the combo box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC *pDC = m_pComboBox->GetDC();
CFont *pFont = m_pComboBox->GetFont();
// Select the listbox font, save the old font
CFont *pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->GetLBText(i, str);
sz = pDC->GetTextExtent(str);
// Add the avg width to prevent clipping
sz.cx += tm.tmAveCharWidth;
if (sz.cx > dx)
dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_pComboBox->ReleaseDC(pDC);
// Set the horizontal extent so every character of all strings can
// be scrolled to.
m_pComboBox->SetHorizontalExtent(dx);
CComboBox::SetItemData
Birleşik giriş kutusunda belirtilen öğeyle ilişkili 32 bit değeri ayarlar.
int SetItemData(
int nIndex,
DWORD_PTR dwItemData);
Parameters
nIndex
Ayarlanacağı öğeye sıfır tabanlı bir dizin içerir.
dwItemData
Öğeyle ilişkilendirilecek yeni değeri içerir.
Dönüş Değeri
CB_ERR hata oluşursa.
Remarks
SetItemDataPtr 32 bit öğe işaretçi olacaksa üye işlevini kullanın.
Example
// Set the data of each item to be equal to its index.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->SetItemData(i, i);
}
CComboBox::SetItemDataPtr
Birleşik giriş kutusundaki belirtilen öğeyle ilişkili 32 bit değeri belirtilen işaretçi (void*) olarak ayarlar.
int SetItemDataPtr(
int nIndex,
void* pData);
Parameters
nIndex
Öğe için sıfır tabanlı bir dizin içerir.
pData
Öğeyle ilişkilendirilecek işaretçiyi içerir.
Dönüş Değeri
CB_ERR hata oluşursa.
Remarks
Öğeler eklendikçe veya kaldırıldıkçe öğenin birleşik giriş kutusu içindeki göreli konumu değişebilse de, bu işaretçi birleşik giriş kutusunun ömrü boyunca geçerli kalır. Bu nedenle, kutunun içindeki öğenin dizini değişebilir, ancak işaretçi güvenilir kalır.
Example
// Set the data pointer of each item to be NULL.
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->SetItemDataPtr(i, NULL);
}
CComboBox::SetItemHeight
SetItemHeight Bir birleşik giriş kutusundaki liste öğelerinin yüksekliğini veya birleşik giriş kutusunun düzenleme denetimi (veya statik metin) bölümünün yüksekliğini ayarlamak için üye işlevini çağırın.
int SetItemHeight(
int nIndex,
UINT cyItemHeight);
Parameters
nIndex
Liste öğelerinin yüksekliğini veya birleşik giriş kutusunun düzenleme denetimi (veya statik metin) bölümünün yüksekliğinin ayarlanıp ayarlanmayacağını belirtir.
Birleşik giriş kutusu stiline CBS_OWNERDRAWVARIABLE sahipse, nIndex yüksekliği ayarlanacak olan liste öğesinin sıfır tabanlı dizinini belirtir; aksi takdirde, nIndex 0 olmalıdır ve tüm liste öğelerinin yüksekliği ayarlanır.
-1 ise nIndex , birleşik giriş kutusunun düzenleme denetiminin veya statik metin bölümünün yüksekliği ayarlanır.
cyItemHeight
tarafından nIndextanımlanan birleşik giriş kutusu bileşeninin yüksekliğini piksel cinsinden belirtir.
Dönüş Değeri
CB_ERR dizin veya yükseklik geçersizse; aksi takdirde 0.
Remarks
Birleşik giriş kutusunun düzenleme denetimi (veya statik metin) bölümünün yüksekliği, liste öğelerinin yüksekliğinden bağımsız olarak ayarlanır. Uygulama, düzenleme denetimi (veya statik metin) bölümünün yüksekliğinin belirli bir liste kutusu öğesinin yüksekliğinden küçük olmadığından emin olmalıdır.
Example
// Set the height of every item to be the
// vertical size of the item's text extent.
CString str;
CSize sz;
CDC *pDC = m_pComboBox->GetDC();
for (int i = 0; i < m_pComboBox->GetCount(); i++)
{
m_pComboBox->GetLBText(i, str);
sz = pDC->GetTextExtent(str);
m_pComboBox->SetItemHeight(i, sz.cy);
}
m_pComboBox->ReleaseDC(pDC);
CComboBox::SetLocale
Bu birleşik giriş kutusu için yerel ayar tanımlayıcısını ayarlar.
LCID SetLocale(LCID nNewLocale);
Parameters
nNewLocale
Birleşik giriş kutusu için ayarlanacağı yeni yerel ayar tanımlayıcısı (LCID) değeri.
Dönüş Değeri
Bu birleşik giriş kutusu için önceki yerel ayar tanımlayıcısı (LCID) değeri.
Remarks
Çağrılmazsa SetLocale , varsayılan yerel ayar sistemden alınır. Bu sistem varsayılan yerel ayarı, Denetim Masası Bölgesel (veya Uluslararası) uygulaması kullanılarak değiştirilebilir.
Example
// My LCID to use.
LCID mylcid = MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN),
SORT_DEFAULT);
// Force the list box to use my locale.
m_pComboBox->SetLocale(mylcid);
ASSERT(m_pComboBox->GetLocale() == mylcid);
CComboBox::SetMinVisibleItems
Geçerli birleşik giriş kutusu denetiminin açılan listesinde en az görünür öğe sayısını ayarlar.
BOOL SetMinVisibleItems(int iMinVisible);
Parameters
iMinVisible
[in] En az görünür öğe sayısını belirtir.
Dönüş Değeri
TRUE bu yöntem başarılı olursa; aksi takdirde , FALSE.
Remarks
Bu yöntem, Windows SDK'sında açıklanan iletiyi gönderir CB_SETMINVISIBLE .
Example
İlk kod örneği, m_comboboxbirleşik giriş kutusu denetimine program aracılığıyla erişmek için kullanılan değişkenini tanımlar. Bu değişken sonraki örnekte kullanılır.
// Variable to access the combo box control
CComboBox m_combobox;
Sonraki kod örneği birleşik giriş kutusu denetiminin açılan listesine 20 öğe ekler. Ardından, kullanıcı açılan oka bastığında en az 10 öğenin görüntüleneceğini belirtir.
// Add extra initialization here.
// Add 20 items to the combo box. The Resource Editor
// has already been used to set the style of the combo
// box to CBS_SORT.
CString str;
for (int i = 1; i <= 20; i++)
{
str.Format(_T("Item %2d"), i);
m_combobox.AddString(str);
}
// Set the minimum visible item
m_combobox.SetMinVisibleItems(10);
// Set the cue banner
m_combobox.SetCueBanner(_T("Select an item..."));
// End of extra initialization.
CComboBox::SetTopIndex
Birleşik giriş kutusunun liste kutusu bölümünde belirli bir öğenin görünür olmasını sağlar.
int SetTopIndex(int nIndex);
Parameters
nIndex
Liste kutusu öğesinin sıfır tabanlı dizinini belirtir.
Dönüş Değeri
Başarılı olursa veya CB_ERR hata oluşursa sıfır.
Remarks
Sistem, tarafından belirtilen nIndex öğe liste kutusunun en üstünde görünene veya kaydırma aralığı üst sınırına ulaşılana kadar liste kutusunu kaydırıyor.
Example
// Set the first visible item in the combo box to be the middle item
m_pComboBox->SetTopIndex(m_pComboBox->GetCount() / 2);
CComboBox::ShowDropDown
veya stiline sahip CBS_DROPDOWN birleşik giriş kutusunun liste kutusunu gösterir veya CBS_DROPDOWNLIST gizler.
void ShowDropDown(BOOL bShowIt = TRUE);
Parameters
bShowIt
Açılan liste kutusunun gösterileceğini veya gizlenip gizlenmeyeceğini belirtir. değeri TRUE , liste kutusunu gösterir. değeri FALSE liste kutusunu gizler.
Remarks
Varsayılan olarak, bu stilin birleşik giriş kutusu liste kutusunu gösterir.
Bu üye işlevinin stille CBS_SIMPLE oluşturulan birleşik giriş kutusu üzerinde hiçbir etkisi yoktur.
Example
örneğine CComboBox::GetDroppedStatebakın.
Ayrıca bakınız
MFC Örnek CTRLBAR'ları
CWnd Sınıf
Hiyerarşi Grafiği
CWnd Sınıf
CButton Sınıf
CEdit Sınıf
CListBox Sınıf
CScrollBar Sınıf
CStatic Sınıf
CDialog Sınıf