複製鏈接
請複製以下鏈接發送給好友

CCheckListBox

鎖定
CCheckListBox只用於自定義的控件,列表中不僅僅包含字符串文本。
外文名
CCheckListBox
類    型
計算機術語
類CCheckListBox實現了Windows複選列表框。複選列表框顯示項的一個列表,例如文件名列表。列表中的每項都有一個複選框
當然簡單的複選列表框可以只有字符串文本和相應的複選框。實際上也可以沒有文本。例如可以是一個位圖以及相應於複選框的列表。
創建自己的複選列表框,要從類CCheckListBox派生一個子類。然後為它寫一個構造函數,並調用成員函數Create。
如果複選列表框是缺省形式的(由左邊帶有固定大小的複選框的字符串組成),就可以用缺省的CCheckListBox::DrawItem函數繪製複選列表框。否則就要覆蓋函數CListBox::CompareItem、CCheckListBox::DrawItem以及CCheckListBox::Meas-ureItem。
可以在對話框模板或程序代碼中直接創建一個複選列表框。
#include
使用步驟及説明(限於MFC)
1 拖入一個List Box 控件到對話框上。
2 選擇控件屬性如下圖(Owner draw選中Fixed;Has string選中)
選擇控件屬性 選擇控件屬性
3 然後給已經拖入控件的對話框定義一個CCheckListBox類型成員,然後綁定拖入的控件。
4 使用CCheckListBox類的AddString方法可以加入複選框。
5根據需求 勾選或反選相關索引 調用成員函數 void SetCheck(int nIndex, int nCheck);
6 關於CCheckListBox事件,如果需要響應每一項前面的CCheckBox的點擊事件,該事件不能在類嚮導中添加,必須手工添加,首先在頭文件中添加 :
afx_msg void OnCheckchangeList1();
然後在CPP文件中如下代碼中添加:
BEGIN_MESSAGE_MAP(CCheckListTestDlg, CDialog)
//{{AFX_MSG_MAP(CCheckListTestDlg)
//}}AFX_MSG_MAP
ON_CLBN_CHKCHANGE(IDC_LIST1, OnCheckchangeList1) //所添加部分
END_MESSAGE_MAP()
最後添加函數定義
void CCheckListTestDlg::OnCheckchangeList1()
{
}
在函數體中添加代碼即可。