Aracılığıyla paylaş


CComboBox Sınıf

Windows birleşik giriş kutusunun işlevselliğini sağlar.

Sözdizimi

class CComboBox : public CWnd

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComboBox::CComboBox Bir CComboBox nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
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_DROPDOWNLIST stiline sahip birleşik giriş kutusu için varsayılan kullanıcı arabirimini veya genişletilmiş kullanıcı arabirimini CBS_DROPDOWN 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.

Açıklamalar

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.

Stil Liste kutusu ne zaman görünür Statik veya düzenleme denetimi
Basit Her zaman Düzenle
Açılan liste Aşağı bırakıldığında Düzenle
Açılan liste Aşağı bırakıldığında Statik

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 Create CComboBox .

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 olan CBS_SIMPLE bir birleşik giriş kutusu için gönderilmez.

  • ON_CBN_DBLCLK Kullanıcı, birleşik giriş kutusunun liste kutusunda bir dizeye çift tıklar. Bu bildirim iletisi yalnızca stiline CBS_SIMPLE sahip bir birleşik giriş kutusu için gönderilir. veya CBS_DROPDOWNLIST stiline CBS_DROPDOWN sahip bir birleşik giriş kutusu için, tek bir tıklama liste kutusunu gizlediğinden çift tıklama gerçekleşemez.

  • ON_CBN_DROPDOWN Birleşik giriş kutusunun liste kutusu açılan menüye indirilecek (görünür hale getirilecek). Bu bildirim iletisi yalnızca veya CBS_DROPDOWNLIST stiline CBS_DROPDOWN sahip bir birleşik giriş kutusu için oluşabilir.

  • ON_CBN_EDITCHANGE Kullanıcı, birleşik giriş kutusunun düzenleme denetimi bölümündeki metni değiştirmiş olabilecek bir eylemde bulundu. İletinin CBN_EDITUPDATE aksine, windows ekranı güncelleştirdikten sonra bu ileti gönderilir. Birleşik giriş kutusu stiline CBS_DROPDOWNLIST sahipse gönderilmez.

  • ON_CBN_EDITUPDATE Birleş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 stiline CBS_DROPDOWNLIST sahipse gönderilmez.

  • ON_CBN_ERRSPACE Birleş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çiminin CBN_CLOSEUP yoksayılması gerektiğini belirtmek için bildirim iletisinden önce gönderilir. Veya CBN_SELENDCANCEL CBN_SELENDOK bildirim iletisi, bildirim iletisi gönderilmese CBN_CLOSEUP bile gönderilir (stile sahip CBS_SIMPLE bir birleşik giriş kutusunda olduğu gibi).

  • ON_CBN_SELENDOK Kullanı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çiminin CBN_CLOSEUP geçerli olarak kabul edilmesi gerektiğini belirtmek için iletiden önce gönderilir. Veya CBN_SELENDCANCEL CBN_SELENDOK bildirim iletisi, bildirim iletisi gönderilmese CBN_CLOSEUP bile gönderilir (stile sahip CBS_SIMPLE bir birleşik giriş kutusunda olduğu gibi).

  • ON_CBN_KILLFOCUS Birleşik giriş kutusu giriş odağını kaybediyor.

  • ON_CBN_SELCHANGE Kullanı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ığıyla GetLBText alınabilir. GetWindowText kullanılamaz.

  • ON_CBN_SETFOCUS Birleş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 new yığında nesnesi oluşturursanızCComboBox, Windows birleşik giriş kutusu yok edildiğinde yok etmek için nesne üzerinde çağrısında delete bulunması gerekir.

Not ve WM_CHAR iletileri işlemek WM_KEYDOWN istiyorsanız birleşik giriş kutusunun düzenleme ve liste kutusu denetimlerini alt sınıfa eklemeniz, ve CListBox'den CEdit 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

CObject

CCmdTarget

CWnd

CComboBox

Gereksinimler

Üstbilgi: afxwin.h

CComboBox::AddString

Birleşik giriş kutusunun liste kutusuna bir dize ekler.

int AddString(LPCTSTR lpszString);

Parametreler

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.

Açıklamalar

Liste kutusu stille CBS_SORT oluşturulmadıysa, dize listenin sonuna eklenir. Aksi takdirde, dize listeye eklenir ve liste sıralanır.

Not

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 .

Örnek

// 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();

Örnek

// 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();

Açıklamalar

Geçerli seçimi silmek ve silinen içeriği Pano'ya yerleştirmek için üye işlevini kullanın Cut .

Örnek

// 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);

Parametreler

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:

Değer Anlamı
-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ı COMPAREITEMSTRUCTiçin bkzCWnd::OnCompareItem. .

Açıklamalar

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.

Örnek

// 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();

Örnek

// 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);

Parametreler

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.

Açıklamalar

İ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_CHILD Her zaman

  • WS_VISIBLE Genelde

  • WS_DISABLED Nadiren

  • WS_VSCROLL Birleşik giriş kutusuna liste kutusu için dikey kaydırma eklemek için

  • WS_HSCROLL Birleşik giriş kutusuna liste kutusu için yatay kaydırma eklemek için

  • WS_GROUP Denetimleri gruplandırmak için

  • WS_TABSTOP Birleşik giriş kutusunu sekme sırasına eklemek için

Örnek

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();

Açıklamalar

Silinen metni Pano'ya yerleştirmeden geçerli seçimi silmek için üye işlevini çağırın Clear .

Örnek

// 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);

Parametreler

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 .

Açıklamalar

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.

Örnek

// 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);

Parametreler

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 nIndex değeridirCB_ERR.

Açıklamalar

İ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.

Örnek

// 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);

Parametreler

attr
içinde açıklanan CFile::GetStatus değerlerin enum herhangi bir bileşimi veya aşağıdaki değerlerin herhangi bir bileşimi olabilir:

  • DDL_READWRITE Dosyadan okunabilir veya bu dosyaya yazılabilir.

  • DDL_READONLY Dosya' dan okunabilir ancak bu dosyaya yazılamaz.

  • DDL_HIDDEN Dosya gizlidir ve dizin listesinde görünmez.

  • DDL_SYSTEM Dosya bir sistem dosyasıdır.

  • DDL_DIRECTORY tarafından lpszWildCard belirtilen ad bir dizin belirtir.

  • DDL_ARCHIVE Dosya arşivlendi.

  • DDL_DRIVES tarafından belirtilen adla eşleşen tüm sürücüleri dahil edin lpszWildCard.

  • 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.

Açıklamalar

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 .

Örnek

// 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);

Parametreler

lpDrawItemStruct
Gerekli çizim türü hakkında bilgi içeren bir DRAWITEMSTRUCT yapı işaretçisi.

Açıklamalar

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.

Örnek

// 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;

Parametreler

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.

Açıklamalar

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 .

Örnek

// 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;

Parametreler

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.

Açıklamalar

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.

Örnek

// 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;

Parametreler

*pcbi*<br/> A pointer to the [COMBOBOXINFO'](/windows/win32/api/winuser/ns-winuser-comboboxinfo) yapısı.

Dönüş Değeri

Başarılı olduğunda, FALSE başarısız olduğunda döndürürTRUE.

Açıklamalar

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.

Örnek

// 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;

Parametreler

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.

-veya-

İkinci aşırı yüklemede, TRUE bu yöntem başarılı olursa; aksi takdirde , FALSE.

Açıklamalar

İ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.

Açıklamalar

GetCurSel listeye bir dizin döndürür.

Örnek

// 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;

Parametreler

lprect
Koordinatları almak için rect yapısına işaret eder.

Örnek

// 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.

Örnek

// 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.

Açıklamalar

Bu işlev yalnızca veya CBS_DROPDOWNLIST stiline sahip birleşik giriş kutuları için CBS_DROPDOWN 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.

Örnek

ö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 .

Örnek

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.

Açıklamalar

Genişletilmiş kullanıcı arabirimi aşağıdaki yollarla tanımlanabilir:

  • Statik denetime tıklanması yalnızca stile sahip CBS_DROPDOWNLIST birleş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).

Örnek

// 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).

Açıklamalar

Bu yalnızca birleşik giriş kutusunun liste kutusu bölümünde yatay kaydırma çubuğu varsa geçerlidir.

Örnek

// 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;

Parametreler

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.

Açıklamalar

32 bit değeri, üye SetItemData işlev çağrısının parametresiyle dwItemData ayarlanabilir. GetItemDataPtr Alınacak 32 bit değer bir işaretçi (void *) ise üye işlevini kullanın.

Örnek

// 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;

Parametreler

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.

Örnek

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;

Parametreler

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.

Örnek

// 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;

Parametreler

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.

Açıklamalar

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).

Örnek

// 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;

Parametreler

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.

Örnek

ö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.

Açıklamalar

Yerel ayar, örneğin sıralanmış birleşik giriş kutusundaki dizelerin sıralama düzenini belirlemek için kullanılır.

Örnek

ö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ı.

Açıklamalar

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.

Açıklamalar

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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

öğ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 , InsertStringve Dir işlevlerinin mümkün olan en kısa süreyi alması için AddStringbelirtilen 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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

Üye işlevinin AddString aksine, InsertString üye işlevi stiline sahip bir listenin CBS_SORT sıralanmasına neden olmaz.

Not

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 .

Örnek

// 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);

Parametreler

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.

Açıklamalar

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.

Örnek

// 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);

Parametreler

lpMeasureItemStruct
Bir yapıya uzun bir MEASUREITEMSTRUCT işaretçi.

Açıklamalar

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 SubclassDlgItem CWnd 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ı MEASUREITEMSTRUCT için bkzCWnd::OnMeasureItem.

Örnek

// 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();

Açıklamalar

Veriler yalnızca Pano biçiminde veri CF_TEXT içeriyorsa eklenir.

Örnek

// 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();

Örnek

// 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);

Parametreler

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.

Açıklamalar

Bir dize yalnızca ilk karakterleri (başlangıç noktasından) ön ek dizesindeki karakterlerle eşleşiyorsa seçilir.

ve FindString üye işlevlerinin SelectString her ikisinin de bir dize bulduğuna, ancak üye işlevinin SelectString de dizeyi seçtiğine dikkat edin.

Örnek

// 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);

Parametreler

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.

Açıklamalar

İ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 .

Örnek

İ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);

Parametreler

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_ERR nSelect listedeki öğe sayısından büyükse veya -1 olarak ayarlanırsa nSelect seçimi temizler.

Açıklamalar

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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

Bu işlev yalnızca veya CBS_DROPDOWNLIST stiline sahip birleşik giriş kutuları için CBS_DROPDOWN 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.

Örnek

// 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);

Parametreler

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 CBS_DROPDOWNLIST sahipse CComboBox veya liste kutusuna sahip değilse olur.

Açıklamalar

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.

Not

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 .

Örnek

ö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);

Parametreler

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.

Açıklamalar

Genişletilmiş kullanıcı arabirimi aşağıdaki yollarla tanımlanabilir:

  • Statik denetime tıklanması yalnızca stile sahip CBS_DROPDOWNLIST birleş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).

Örnek

ö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);

Parametreler

nExtent
Birleşik giriş kutusunun liste kutusu bölümünün yatay olarak kaydırılabildiği piksel sayısını belirtir.

Açıklamalar

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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

SetItemDataPtr 32 bit öğe işaretçi olacaksa üye işlevini kullanın.

Örnek

// 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);

Parametreler

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.

Açıklamalar

Öğ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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

Ç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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

Bu yöntem, Windows SDK'sında açıklanan iletiyi gönderir CB_SETMINVISIBLE .

Örnek

İ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);

Parametreler

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.

Açıklamalar

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.

Örnek

// 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);

Parametreler

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.

Açıklamalar

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.

Örnek

örneğine CComboBox::GetDroppedStatebakın.

Ayrıca bkz.

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