1添加数据
声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content.
m_ListBox_Content.AddString(_T("123"));
m_ListBox_Content.AddString(_T("汉字"));
m_ListBox_Content.AddString(_T("English"));
m_ListBox_Content.AddString(_T("!@#$%^&*()"));
2获取数据
CString s;
m_ListBox_Content.GetText(1,s);//获取第二行的数据 第一行为0
MessageBox(s,_T("取得第2行数据"),MB_OK);
s.ReleaseBuffer();
将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写的顺序写入.
3获取选择的数据
首先要将ListBox的Selection属性设置为Multiple;
int nSel;
nSel=m_ListBox_Content.GetCurSel();
CString s;
m_ListBox_Content.GetText(nSel,s);
MessageBox(s,_T("您选择的是"),MB_OK);
s.ReleaseBuffer();
4获取选择ListBox项的多个数据
首先要将ListBox的Selection的属性设置为Multiple
int nSel = m_ListBox_Content.GetSelCount();
CArray< int,int& > arrayListSel;
arrayListSel.SetSize(nSel);
m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData());
CString s = _T("");
for( int i=0; i< nSel; i++ )
{
m_ListBox_Content.GetText( arrayListSel[i], s);
MessageBox(s,_T("您选择的是"),MB_OK);
}
5双击删除所选项
添加一个ListBox的双击事件
m_ListBox_Content.DeleteString(m_ListBox_Content.GetCurSel());
MFC中listbox控件是为了显示一系列的文本,每个文本占一行。
Listbox控件可以设置属性为:
LBS_CHILD :(默认)子窗口
LBS_Visible :(默认)可视
LBS_Multiplesel :可选择多行
LBS_Extendedsel :可以使用shift或ctrl选择多行
LBS_SORT:所有行按字母顺序进行排序
对Listbox进行操作:
Int listbox.AddString ( LPCTSTR Str) :对listbox的首行添加一个str的文本行,即此时nIndex为0;
Int listbox.DeleteString (uint nIndex) :删除listbox中第nIndex行的文本行,注意nIndex是从0起始的;
int listbox.InsertString (uint xIndex, LPCTSTR Str):在listbox中第nIndex行插入一个str的文本行;
Int listbox.GetCount ( ):获取listbox的行的总数目;
Int listbox.GetCurSel ( ):得到listbox选中的文本行的行数。
Void listbox.ResetContent ( ):清除listbox中的所有数据;
Int listbox.GetCurCount ( ):获取listbox被选中的行的数目;
Int listbox.FindString ( int nstart , LPCTSTR Str ):从第nstart行开始起进行查找,查找Str的文本行;
Int listbox.SelectString ( int nstart, LPCTSTR Str ) :从第nstart行开始,选择包含Str字符串的那一行;
对Listbox中某一行进行双击操作,要产生一个响应函数的步骤:
在
BEGIN_MESSAGE_MAP()
END_MESSAGE_MAP()
之间添加响应函数的消息映射,如函数名为C**Dlg::OnLbnDblClk,添加下面代码
ON_LBN_DBLCLK(IDC_LIST1,&C**Dlg::OnLbnDblClk)
//IDC_LIST1为listbox控件的ID
然后在C**Dlg.h中添加函数OnLbnDblClk()的声明
最后在C**Dlg::OnLbnDblClk()函数中添加实现代码即可