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 CDialog
tü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_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 stilineCBS_SIMPLE
sahip bir birleşik giriş kutusu için gönderilir. veyaCBS_DROPDOWNLIST
stilineCBS_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 veyaCBS_DROPDOWNLIST
stilineCBS_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. İletininCBN_EDITUPDATE
aksine, windows ekranı güncelleştirdikten sonra bu ileti gönderilir. Birleşik giriş kutusu stilineCBS_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 stilineCBS_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çimininCBN_CLOSEUP
yoksayılması gerektiğini belirtmek için bildirim iletisinden önce gönderilir. VeyaCBN_SELENDCANCEL
CBN_SELENDOK
bildirim iletisi, bildirim iletisi gönderilmeseCBN_CLOSEUP
bile gönderilir (stile sahipCBS_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çimininCBN_CLOSEUP
geçerli olarak kabul edilmesi gerektiğini belirtmek için iletiden önce gönderilir. VeyaCBN_SELENDCANCEL
CBN_SELENDOK
bildirim iletisi, bildirim iletisi gönderilmeseCBN_CLOSEUP
bile gönderilir (stile sahipCBS_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ığıylaGetLBText
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
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ı COMPAREITEMSTRUCT
iç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ınCreate
CComboBox
.
Yürütülürken Create
, Windows birleşik giriş kutusuna WM_NCCREATE
, WM_CREATE
, WM_NCCALCSIZE
ve WM_GETMINMAXINFO
iletilerini gönderir.
Bu iletiler varsayılan olarak temel sınıftaki OnNcCreate
, OnCreate
, OnNcCalcSize
ve OnGetMinMaxInfo
üye işlevleri CWnd
tarafından işlenir. Varsayılan ileti işlemeyi genişletmek için öğesinden CComboBox
bir 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 zamanWS_VISIBLE
GeneldeWS_DISABLED
NadirenWS_VSCROLL
Birleşik giriş kutusuna liste kutusu için dikey kaydırma eklemek içinWS_HSCROLL
Birleşik giriş kutusuna liste kutusu için yatay kaydırma eklemek içinWS_GROUP
Denetimleri gruplandırmak içinWS_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ındanlpszWildCard
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 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.
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 lpDrawItemStruct
sağ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 nStartAfter
belirtilen öğ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 lpszFind
dizeyle 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 nIndexStart
belirtilen öğ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 SetDroppedWidth
ayarlanabilir. 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 SetDroppedWidth
bakı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::GetLBText
bakı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::SetLocale
bakı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_ERRSPACE
yeterli 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 , InsertString
ve Dir
işlevlerinin mümkün olan en kısa süreyi alması için AddString
belirtilen 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_AUTOHSCROLL
yoksa, 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 nStartAfter
belirtilen öğ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_combobox
birleş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::GetEditSel
bakı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::GetExtendedUI
bakı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 nIndex
tanı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_combobox
birleş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::GetDroppedState
bakı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