Aracılığıyla paylaş


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 CCheckListBoxtü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 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 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 CListBoxde 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

CObject

CCmdTarget

CWnd

CListBox

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 CCheckListBoxtüretilmiş bir sınıf tanımlayın, ardından Windows onay listesini başlatan ve nesnesine ekleyen öğesini çağırınCreateCCheckListBox.

Ö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_USETABSTOPSdiğ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ınCreateCCheckListBox. Örnek için bkz CCheckListBox::CCheckListBox .

YürütülürkenCreate, Windows , WM_CREATE, WM_NCCALCSIZEve WM_GETMINMAXINFO iletilerini onay listesi denetimine gönderirWM_NCCREATE.

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 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 zaman

  • WS_VISIBLE Genelde

  • WS_DISABLED Nadiren

  • WS_VSCROLL Dikey kaydırma çubuğu eklemek için

  • WS_HSCROLL Yatay kaydırma çubuğu eklemek için

  • WS_GROUP Denetimleri gruplandırmak için

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

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 Createbelirtilen) olmalıdır LBS_OWNERVARIABLEve 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_3STATEise 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.

Ayrıca bkz.

MFC Örneği TSTCON
CListBox Sınıf
Hiyerarşi Grafiği