MFC筆記1-動態建立CChecklistbox
阿新 • • 發佈:2018-11-14
一、動態建立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);
大功告成