Bagikan melalui


CCheckListBox Kelas

Menyediakan fungsionalitas kotak centang Windows.

Sintaks

class CCheckListBox : public CListBox

Anggota

Konstruktor Publik

Nama Deskripsi
CCheckListBox::CCheckListBox Membuat CCheckListBox objek.

Metode Publik

Nama Deskripsi
CCheckListBox::Create Membuat kotak centang Windows dan melampirkannya ke CCheckListBox objek.
CCheckListBox::DrawItem Dipanggil oleh kerangka kerja saat aspek visual kotak daftar gambar pemilik berubah.
CCheckListBox::Enable Mengaktifkan atau menonaktifkan item kotak centang.
CCheckListBox::GetCheck Mendapatkan status kotak centang item.
CCheckListBox::GetCheckStyle Mendapatkan gaya kotak centang kontrol.
CCheckListBox::IsEnabled Menentukan apakah item diaktifkan.
CCheckListBox::MeasureItem Dipanggil oleh kerangka kerja saat kotak daftar dengan gaya gambar pemilik dibuat.
CCheckListBox::OnGetCheckPosition Dipanggil oleh kerangka kerja untuk mendapatkan posisi kotak centang item.
CCheckListBox::SetCheck Mengatur status kotak centang item.
CCheckListBox::SetCheckStyle Mengatur gaya kotak centang kontrol.

Keterangan

"Kotak centang" menampilkan daftar item, seperti nama file. Setiap item dalam daftar memiliki kotak centang di sampingnya agar pengguna dapat mencentang atau menghapusnya.

CCheckListBox hanya untuk kontrol yang digambar pemilik karena daftar berisi lebih dari string teks. Paling sederhana, kotak centang berisi string teks dan kotak centang, tetapi Anda tidak perlu memiliki teks. Misalnya, Anda bisa memiliki daftar bitmap kecil dengan kotak centang di samping setiap item.

Untuk membuat kotak centang Anda sendiri, Anda harus mendapatkan kelas Anda sendiri dari CCheckListBox. Untuk memperoleh kelas Anda sendiri, tulis konstruktor untuk kelas turunan, lalu panggil Create.

Jika Anda ingin menangani pesan pemberitahuan Windows yang dikirim oleh kotak daftar ke induknya (biasanya kelas berasal dari CDialog), tambahkan entri peta pesan dan fungsi anggota penanganan pesan ke kelas induk untuk setiap pesan.

Setiap entri peta pesan mengambil formulir berikut:

ON_Notification ( id, memberFxn )

di mana id menentukan ID jendela anak kontrol yang mengirim pemberitahuan dan memberFxn merupakan nama fungsi anggota induk yang telah Anda tulis untuk menangani pemberitahuan.

Prototipe fungsi induk adalah sebagai berikut:

afx_msg void memberFxn();

Hanya ada satu entri peta pesan yang berkaitan secara khusus CCheckListBox (tetapi lihat juga entri peta pesan untuk CListBox):

  • ON_CLBN_CHKCHANGE Pengguna telah mengubah status kotak centang item.

Jika kotak centang Anda adalah kotak centang default (daftar string dengan kotak centang berukuran default di sebelah kiri masing-masing), Anda bisa menggunakan default CCheckListBox::DrawItem untuk menggambar kotak centang. Jika tidak, Anda harus mengambil alih CListBox::CompareItem fungsi dan CCheckListBox::DrawItem CCheckListBox::MeasureItem fungsi.

Anda dapat membuat kotak centang baik dari templat dialog atau langsung di kode Anda.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CListBox

CCheckListBox

Persyaratan

Header: afxwin.h

CCheckListBox::CCheckListBox

Membuat CCheckListBox objek.

CCheckListBox();

Keterangan

Anda membuat CCheckListBox objek dalam dua langkah. Pertama-tama tentukan kelas yang berasal dari CCheckListBox, lalu panggil Create, yang menginisialisasi kotak centang Windows dan melampirkannya ke CCheckListBox objek.

Contoh

CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
                      CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);

CCheckListBox::Create

Membuat kotak centang Windows dan melampirkannya ke CCheckListBox objek.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameter

dwStyle
Menentukan gaya kotak centang. Gaya harus LBS_HASSTRINGS dan ( LBS_OWNERDRAWFIXED semua item dalam daftar memiliki tinggi yang sama) atau LBS_OWNERDRAWVARIABLE (item dalam daftar memiliki tinggi yang bervariasi). Gaya ini dapat dikombinasikan dengan gaya kotak daftar lainnya kecuali LBS_USETABSTOPS.

rect
Menentukan ukuran dan posisi kotak centang. Dapat berupa CRect objek atau RECT struktur.

pParentWnd
Menentukan jendela induk kotak centang (biasanya objek CDialog ). Ini tidak boleh NULL.

nID
Menentukan ID kontrol kotak centang.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Anda membuat CCheckListBox objek dalam dua langkah. Pertama, tentukan kelas yang berasal dari CcheckListBox dan kemudian panggil Create, yang menginisialisasi kotak centang Windows dan melampirkannya ke CCheckListBox. Lihat CCheckListBox::CCheckListBox untuk sampel.

Saat Create dijalankan, Windows mengirimkan WM_NCCREATEpesan , , WM_CREATEWM_NCCALCSIZE, dan WM_GETMINMAXINFO ke kontrol kotak centang.

Pesan ini ditangani secara default oleh OnNcCreatefungsi anggota , , OnCreateOnNcCalcSize, dan OnGetMinMaxInfo di CWnd kelas dasar. Untuk memperluas penanganan pesan default, tambahkan peta pesan ke kelas turunan dan ambil alih fungsi anggota penanganan pesan sebelumnya. Ambil alih OnCreate, misalnya, untuk melakukan inisialisasi yang diperlukan untuk kelas baru.

Terapkan gaya jendela berikut ke kontrol kotak centang:

  • WS_CHILD Selalu

  • WS_VISIBLE Biasanya

  • WS_DISABLED Jarang

  • WS_VSCROLL Untuk menambahkan bilah gulir vertikal

  • WS_HSCROLL Untuk menambahkan bilah gulir horizontal

  • WS_GROUP Untuk mengelompokkan kontrol

  • WS_TABSTOP Untuk memperbolehkan tab ke kontrol ini

CCheckListBox::DrawItem

Dipanggil oleh kerangka kerja saat aspek visual kotak centang yang digambar pemilik berubah.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameter

lpDrawItemStruct
Penunjuk panjang ke DRAWITEMSTRUCT struktur yang berisi informasi tentang jenis gambar yang diperlukan.

Keterangan

itemState Dan itemAction anggota DRAWITEMSTRUCT struktur menentukan tindakan menggambar yang akan dilakukan.

Secara default, fungsi ini menggambar daftar kotak centang default, yang terdiri dari daftar string masing-masing dengan kotak centang berukuran default di sebelah kiri. Ukuran daftar kotak centang adalah yang ditentukan dalam Create.

Ambil alih fungsi anggota ini untuk mengimplementasikan gambar kotak centang gambar pemilik yang bukan default, seperti kotak centang dengan daftar yang bukan string, dengan item tinggi variabel, atau dengan kotak centang yang tidak ada di sebelah kiri. Aplikasi harus memulihkan semua objek antarmuka perangkat grafis (GDI) yang dipilih untuk konteks tampilan yang disediakan sebelum lpDrawItemStruct penghentian fungsi anggota ini.

Jika item kotak daftar centang tidak semuanya memiliki tinggi yang sama, gaya kotak centang (ditentukan dalam Create) harus LBS_OWNERVARIABLE, dan Anda harus mengambil alih MeasureItem fungsi.

CCheckListBox::Enable

Panggil fungsi ini untuk mengaktifkan atau menonaktifkan item kotak centang.

void Enable(
    int nIndex,
    BOOL bEnabled = TRUE);

Parameter

nIndex
Indeks item kotak centang yang akan diaktifkan.

bEnabled
Menentukan apakah item diaktifkan atau dinonaktifkan.

CCheckListBox::GetCheck

Mengambil status kotak centang yang ditentukan.

int GetCheck(int nIndex);

Parameter

nIndex
Indeks berbasis nol dari kotak centang yang terkandung dalam kotak daftar.

Tampilkan Nilai

Status kotak centang yang ditentukan. Tabel berikut ini mencantumkan nilai yang mungkin.

Nilai Deskripsi
BST_CHECKED Kotak centang dicentang.
BST_UNCHECKED Kotak centang tidak dicentang.
BST_INDETERMINATE Status kotak centang tidak ditentukan.

CCheckListBox::GetCheckStyle

Panggil fungsi ini untuk mendapatkan gaya kotak centang.

UINT GetCheckStyle();

Tampilkan Nilai

Gaya kotak centang kontrol.

Keterangan

Untuk informasi tentang kemungkinan gaya, lihat SetCheckStyle.

CCheckListBox::IsEnabled

Panggil fungsi ini untuk menentukan apakah item diaktifkan.

BOOL IsEnabled(int nIndex);

Parameter

nIndex
Indeks item.

Tampilkan Nilai

Bukan nol jika item diaktifkan; jika tidak, 0.

CCheckListBox::MeasureItem

Dipanggil oleh kerangka kerja saat kotak centang dengan gaya nondefault dibuat.

virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Parameter

lpMeasureItemStruct
Pointer panjang ke MEASUREITEMSTRUCT struktur.

Keterangan

Secara default, fungsi anggota ini tidak melakukan apa pun. Ambil alih fungsi anggota ini dan isi MEASUREITEMSTRUCT struktur untuk memberi tahu Windows tentang dimensi item kotak centang. Jika kotak centang dibuat dengan LBS_OWNERDRAWVARIABLE gaya, kerangka kerja memanggil fungsi anggota ini untuk setiap item dalam kotak daftar. Jika tidak, anggota ini hanya dipanggil sekali.

CCheckListBox::OnGetCheckPosition

Kerangka kerja memanggil fungsi ini untuk mendapatkan posisi dan ukuran kotak centang dalam item.

virtual CRect OnGetCheckPosition(
    CRect rectItem,
    CRect rectCheckBox);

Parameter

rectItem
Posisi dan ukuran item daftar.

rectCheckBox
Posisi dan ukuran default kotak centang item.

Tampilkan Nilai

Posisi dan ukuran kotak centang item.

Keterangan

Implementasi default hanya mengembalikan posisi dan ukuran default kotak centang (rectCheckBox). Secara default, kotak centang diratakan di sudut kiri atas item dan merupakan ukuran kotak centang standar. Mungkin ada kasus di mana Anda ingin kotak centang di sebelah kanan, atau ingin kotak centang yang lebih besar atau lebih kecil. Dalam kasus ini, ambil alih OnGetCheckPosition untuk mengubah posisi dan ukuran kotak centang dalam item.

CCheckListBox::SetCheck

Mengatur status kotak centang yang ditentukan.

void SetCheck(
    int nIndex,
    int nCheck);

Parameter

nIndex
Indeks berbasis nol dari kotak centang yang terkandung dalam kotak daftar.

nCheck
Status tombol untuk kotak centang yang ditentukan. Lihat bagian Keterangan untuk nilai yang mungkin.

Keterangan

Tabel berikut ini mencantumkan nilai yang nCheck mungkin untuk parameter .

Nilai Deskripsi
BST_CHECKED Pilih kotak centang yang ditentukan.
BST_UNCHECKED Kosongkan kotak centang yang ditentukan.
BST_INDETERMINATE Atur status kotak centang yang ditentukan untuk tidak ditentukan.

Status ini hanya tersedia jika gaya kotak centang adalah BS_AUTO3STATE atau BS_3STATE. Untuk informasi selengkapnya, lihat Gaya Tombol.

CCheckListBox::SetCheckStyle

Panggil fungsi ini untuk mengatur gaya kotak centang dalam kotak centang.

void SetCheckStyle(UINT nStyle);

Parameter

nStyle
Menentukan gaya kotak centang dalam kotak centang.

Keterangan

Gaya yang valid adalah:

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

Untuk informasi tentang gaya ini, lihat Gaya Tombol.

Lihat juga

Sampel MFC TSTCON
CListBox Kelas
Bagan Hierarki