CCheckListBox
Sınıf
Windows onay listesi kutusunun işlevselliğini sağlar.
Sözdizimi
class CCheckListBox : public CListBox
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CCheckListBox::CCheckListBox |
Bir CCheckListBox nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CCheckListBox::Create |
Windows onay listesi kutusunu oluşturur ve nesneye CCheckListBox ekler. |
CCheckListBox::DrawItem |
Sahip çizim liste kutusunun görsel bir yönü değiştiğinde çerçeve tarafından çağrılır. |
CCheckListBox::Enable |
Onay listesi kutu öğesini etkinleştirir veya devre dışı bırakır. |
CCheckListBox::GetCheck |
Öğenin onay kutusunun durumunu alır. |
CCheckListBox::GetCheckStyle |
Denetimin onay kutularının stilini alır. |
CCheckListBox::IsEnabled |
Bir öğenin etkinleştirilip etkinleştirilmediğini belirler. |
CCheckListBox::MeasureItem |
Sahip çizim stiline sahip bir liste kutusu oluşturulduğunda çerçeve tarafından çağrılır. |
CCheckListBox::OnGetCheckPosition |
Bir öğenin onay kutusunun konumunu almak için çerçeve tarafından çağrılır. |
CCheckListBox::SetCheck |
Öğenin onay kutusunun durumunu ayarlar. |
CCheckListBox::SetCheckStyle |
Denetimin onay kutularının stilini ayarlar. |
Açıklamalar
"Onay listesi kutusu" dosya adları gibi öğelerin listesini görüntüler. Listedeki her öğenin yanında kullanıcının işaretleyebileceği veya temizleyebileceği bir onay kutusu bulunur.
CCheckListBox
yalnızca sahip tarafından çizilmiş denetimler içindir çünkü liste metin dizelerinden daha fazlasını içerir. En basiti, bir onay listesi kutusu metin dizeleri ve onay kutuları içerir, ancak hiç metin içermeniz gerekmez. Örneğin, her öğenin yanında bir onay kutusu bulunan küçük bit eşlemlerin bir listesi olabilir.
Kendi onay listenizi oluşturmak için kendi sınıfınızı öğesinden CCheckListBox
türetmelisiniz. Kendi sınıfınızı türetmek için türetilen sınıf için bir oluşturucu yazın ve çağrısı yapın Create
.
Bir liste 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 denetimin 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();
Özellikle CCheckListBox
ilgili olan tek bir ileti eşleme girdisi vardır (ancak için ileti eşleme girdilerine CListBox
de bakın):
ON_CLBN_CHKCHANGE
Kullanıcı bir öğenin onay kutusunun durumunu değiştirdi.
Onay listeniz varsayılan bir onay listesi kutusuysa (her birinin solunda varsayılan boyutlu onay kutuları olan dizelerin listesi), onay listesi kutusunu çizmek için varsayılanı CCheckListBox::DrawItem
kullanabilirsiniz. Aksi takdirde, işlevini ve CCheckListBox::DrawItem
ve CCheckListBox::MeasureItem
işlevlerini geçersiz kılmanız CListBox::CompareItem
gerekir.
Bir iletişim kutusu şablonundan veya doğrudan kodunuzda bir onay listesi kutusu oluşturabilirsiniz.
Devralma Hiyerarşisi
CCheckListBox
Gereksinimler
Üstbilgi: afxwin.h
CCheckListBox::CCheckListBox
Bir CCheckListBox
nesne oluşturur.
CCheckListBox();
Açıklamalar
İki adımda bir CCheckListBox
nesne oluşturursunuz. önce öğesinden CCheckListBox
türetilmiş bir sınıf tanımlayın, ardından Windows onay listesini başlatan ve nesnesine ekleyen öğesini çağırınCreate
CCheckListBox
.
Örnek
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Windows onay listesi kutusunu oluşturur ve nesneye CCheckListBox
ekler.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametreler
dwStyle
Onay listesi kutusunun stilini belirtir. Stil ve olmalıdır LBS_HASSTRINGS
( LBS_OWNERDRAWFIXED
listedeki tüm öğeler aynı yüksekliktedir) veya LBS_OWNERDRAWVARIABLE
(listedeki öğeler farklı yüksekliklerdedir). Bu stil dışındaki LBS_USETABSTOPS
diğer liste kutusu stilleriyle birleştirilebilir.
rect
Onay listesi kutusu boyutunu ve konumunu belirtir. Nesne veya RECT
yapı olabilirCRect
.
pParentWnd
Onay listesi kutusunun üst penceresini (genellikle bir CDialog
nesne) belirtir. NULL olmamalıdır.
nID
Denetim listesi 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 CCheckListBox
nesne oluşturursunuz. İlk olarak, öğesinden CcheckListBox
türetilen bir sınıf tanımlayın ve ardından Windows onay listesini başlatan ve öğesine ekleyen öğesini çağırınCreate
CCheckListBox
. Örnek için bkz CCheckListBox::CCheckListBox
.
YürütülürkenCreate
, Windows , WM_CREATE
, WM_NCCALCSIZE
ve WM_GETMINMAXINFO
iletilerini onay listesi denetimine gönderirWM_NCCREATE
.
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 türetilmiş 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
.
Denetim listesi-kutusu denetimine aşağıdaki pencere stillerini uygulayın:
WS_CHILD
Her zamanWS_VISIBLE
GeneldeWS_DISABLED
NadirenWS_VSCROLL
Dikey kaydırma çubuğu eklemek içinWS_HSCROLL
Yatay kaydırma çubuğu eklemek içinWS_GROUP
Denetimleri gruplandırmak içinWS_TABSTOP
Bu denetime sekmeyle bağlanmaya izin vermek için
CCheckListBox::DrawItem
Sahip tarafından çizilmiş bir onay listesi kutusunun görsel 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 yapıya uzun bir DRAWITEMSTRUCT
işaretçi.
Açıklamalar
itemAction
Yapının ve itemState
üyeleriDRAWITEMSTRUCT
, gerçekleştirilecek çizim eylemini tanımlar.
Varsayılan olarak, bu işlev varsayılan bir onay kutusu listesi çizer ve her biri varsayılan boyutlu onay kutusu sola olan dizelerin bir listesinden oluşur. Onay kutusu liste boyutu, içinde Create
belirtilendir.
Bu üye işlevini geçersiz kılarak varsayılan olmayan sahip-çizim onay listesi kutularının (örneğin, dize olmayan liste içeren onay listesi kutuları, değişken yüksekliği öğeleri veya sol tarafta olmayan onay kutuları) çizimini uygulayın. Uygulama, bu üye işlevinin sonlandırılmasından önce içinde lpDrawItemStruct
sağlanan görüntü bağlamı için seçilen tüm grafik cihaz arabirimi (GDI) nesnelerini geri yüklemelidir.
Onay listesi kutusu öğelerinin tümü aynı yükseklikte değilse, onay listesi kutusu stili (içinde Create
belirtilen) olmalıdır LBS_OWNERVARIABLE
ve işlevi geçersiz kılmanız MeasureItem
gerekir.
CCheckListBox::Enable
Onay listesi kutu öğesini etkinleştirmek veya devre dışı bırakmak için bu işlevi çağır.
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
Parametreler
nIndex
Etkinleştirilecek onay listesi kutusu öğesinin dizini.
bEnabled
Öğenin etkin mi yoksa devre dışı mı olduğunu belirtir.
CCheckListBox::GetCheck
Belirtilen onay kutusunun durumunu alır.
int GetCheck(int nIndex);
Parametreler
nIndex
Liste kutusunda yer alan bir onay kutusunun sıfır tabanlı dizini.
Dönüş Değeri
Belirtilen onay kutusunun durumu. Aşağıdaki tabloda olası değerler listelemektedir.
Value | Açıklama |
---|---|
BST_CHECKED |
Onay kutusu işaretlidir. |
BST_UNCHECKED |
Onay kutusu işaretlenmemiş. |
BST_INDETERMINATE |
Onay kutusu durumu belirsiz. |
CCheckListBox::GetCheckStyle
Onay listesi kutusunun stilini almak için bu işlevi çağırın.
UINT GetCheckStyle();
Dönüş Değeri
Denetimin onay kutularının stili.
Açıklamalar
Olası stiller hakkında bilgi için bkz SetCheckStyle
. .
CCheckListBox::IsEnabled
Bir öğenin etkinleştirilip etkinleştirilmediğini belirlemek için bu işlevi çağır.
BOOL IsEnabled(int nIndex);
Parametreler
nIndex
Öğenin dizini.
Dönüş Değeri
Öğe etkinse sıfır olmayan; aksi takdirde 0.
CCheckListBox::MeasureItem
Varsayılan olmayan stile sahip bir onay listesi 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 Onay listesi öğelerinin MEASUREITEMSTRUCT
boyutlarını Windows'a bildirmek için yapıyı doldurun. Denetim listesi kutusu stille LBS_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.
CCheckListBox::OnGetCheckPosition
Çerçeve, bir öğedeki onay kutusunun konumunu ve boyutunu almak için bu işlevi çağırır.
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
Parametreler
rectItem
Liste öğesinin konumu ve boyutu.
rectCheckBox
Öğenin varsayılan konumu ve boyutu onay kutusu.
Dönüş Değeri
Öğenin konumu ve boyutu onay kutusu.
Açıklamalar
Varsayılan uygulama yalnızca onay kutusunun (rectCheckBox
) varsayılan konumunu ve boyutunu döndürür. Varsayılan olarak, bir öğenin sol üst köşesine bir onay kutusu hizalanır ve standart onay kutusu boyutudur. Sağdaki onay kutularının veya daha büyük veya daha küçük bir onay kutusunun olmasını istediğiniz durumlar olabilir. Böyle durumlarda, öğenin içindeki onay kutusunun konumunu ve boyutunu değiştirmek için geçersiz kılın OnGetCheckPosition
.
CCheckListBox::SetCheck
Belirtilen onay kutusunun durumunu ayarlar.
void SetCheck(
int nIndex,
int nCheck);
Parametreler
nIndex
Liste kutusunda yer alan bir onay kutusunun sıfır tabanlı dizini.
nCheck
Belirtilen onay kutusunun düğme durumu. Olası değerler için Açıklamalar bölümüne bakın.
Açıklamalar
Aşağıdaki tabloda parametresi için olası değerler listelemektedir nCheck
.
Value | Açıklama |
---|---|
BST_CHECKED |
Belirtilen onay kutusunu seçin. |
BST_UNCHECKED |
Belirtilen onay kutusunu temizleyin. |
BST_INDETERMINATE |
Belirtilen onay kutusu durumunu belirsiz olarak ayarlayın. Bu durum yalnızca onay kutusu stili veya BS_3STATE ise BS_AUTO3STATE kullanılabilir. Daha fazla bilgi için bkz . Düğme Stilleri. |
CCheckListBox::SetCheckStyle
Onay listesi kutusundaki onay kutularının stilini ayarlamak için bu işlevi çağırın.
void SetCheckStyle(UINT nStyle);
Parametreler
nStyle
Onay listesi kutusundaki onay kutularının stilini belirler.
Açıklamalar
Geçerli stiller şunlardır:
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
Bu stiller hakkında bilgi için bkz . Düğme Stilleri.