1. 程式人生 > >MFC筆記1-動態建立CChecklistbox

MFC筆記1-動態建立CChecklistbox

一、動態建立CChecklistbox

在VS中,CCheckListBox控制元件無法選擇,能選的只有CListBox控制元件,這個控制元件的選項前面沒有checkbox,如何才能用CCheckListBox了,方法如下:

1. 新建對話方塊應用

2.給對話方塊加一個ListBox控制元件

3.修改ListBox的2個屬性: Owner draw :Fixed, Has String:true

4. 給ListBox加一個變數 m_list,這個變數預設是CListBox的型別,我們修改為CCheckListBox;


在初始化函式中給 CCheckListBox控制元件中加入變數
m_list.AddString(_T("A"));
m_list.AddString(_T("B"));
m_list.AddString(_T("C"));
m_list.AddString(_T("d"));
m_list.AddString(_T("e"));
m_list.AddString(_T("f"));
m_list.AddString(_T("g"));
m_list.AddString(_T("i"));
m_list.AddString(_T("j"));

結果如下


二、獲取CChecklistbox中的複選值

簡單的獲取CChecklistbox中的值,使用這個類自帶的事件處理程式“OnLbnSelchangeList”即可。

1.首先右鍵單擊CChecklistbox控制元件。選擇新增事件處理程式


選擇“LBN_SELECTCHANGE”函式並新增

2.然後新增一個靜態文字框,此處我們將其ID設定為    IDC_STATIC_SS

3.進入剛剛1中建立的函式,並在函式體中新增以下內容

CString str =_T( "你選中了");
	int count = m_list.GetCount();
	for (int i = 0; i<count; i++)
	{
		if (m_list.GetCheck(i) == 1)
		{
			CString tmp;
			m_list.GetText(i, tmp);
			str += tmp;
		}
	}
	GetDlgItem(IDC_STATIC_SS)->SetWindowText(str);
執行程式。結果如下


大功告成