Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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_CHKCHANGEPengguna 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
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_CHILDSelaluWS_VISIBLEBiasanyaWS_DISABLEDJarangWS_VSCROLLUntuk menambahkan bilah gulir vertikalWS_HSCROLLUntuk menambahkan bilah gulir horizontalWS_GROUPUntuk mengelompokkan kontrolWS_TABSTOPUntuk 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_CHECKBOXBS_AUTOCHECKBOXBS_AUTO3STATEBS_3STATE
Untuk informasi tentang gaya ini, lihat Gaya Tombol.