要查看List Control控件的显示效果,最好的方式就是随便打开电脑中一个文件夹,然后你可以选择不同的方式显示目录下面的文件.常用的有Large Icons , Small Icons,List, Details.
这四种方式分别对应List Control属性窗口中View的4种选项:Icon, Small Icon,List , Report.前3种的显示样式就眼前面讲的控件List Box类似.只有Report的样子有点像个表格.
下面以Repot类型的List Control为例
先把控件与如下变量绑定起来
CListCtrl m_listShow;
初始化列表并插入数据
//添加列标题
m_listShow.InsertColumn(0,"ID",LVCFMT_LEFT, 80); //第一列,宽度为80
m_listShow.InsertColumn(1,"Name"); //第二列,这里没有指定列标题的宽度
m_listShow.InsertColumn(2,"Age"); //第三列
//指定列宽度
CRect rect;
m_listShow.GetClientRect(rect);
m_listShow.SetColumnWidth(1, rect.Width()/2); //指定第二列宽度为整个控件区域的一半大小
//指定第三列宽度
m_listShow.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER); //根据列内容自动调整宽度
//指定列表样式
m_listShow.SetExtendedStyle( m_listShow.GetExtendedStyle() |
LVS_EX_CHECKBOXES | // 在第一行第一列显示check box
LVS_EX_GRIDLINES | //列表有风格线,看起来才像表格嘛
LVS_EX_FULLROWSELECT); //选择一行时整行高亮显示,不设置默认只是该行第一列高亮显示.
//插入数据
//插入第一行内容
m_listShow.InsertItem(0, "NO.1"); //第一列可用InsertItem直接插入,0是行数
m_listShow.SetItemText(0,1,"arwen"); //如果不是第一列只能用SetItemText插入内容,其中0是行数,1是列数
m_listShow.SetItemText(0,2,"24");
//插入第二行内容
m_listShow.InsertItem(1, "NO.2");
m_listShow.SetItemText(1,1,"weiwen");
m_listShow.SetItemText(1,2,"25");
删除数据
m_listShow.DeleteItem(1); //删除指定行的数据,这里是删除第一行
m_listShow.DeleteColumn(0); //删除指定列,这里是删第一列
m_listShow.DeleteAllItems(); //删除所有数据
选择数据
int selIndex;
for(int i = 0 ; i < m_listShow.GetItemCount(); i++){
if(m_listShow.GetItemState(i,LVIS_SELECTED) == LVIS_SELECTED){
selIndex = i; //该行被选中
}
}
如果你设置了样式为LVS_EX_CHECKBOXES,则每一行有个check box.此时可以这样判断每行是否选上
int selIndex;
for(int i = 0 ; i < m_listShow.GetItemCount(); i++){
if(m_listShow.GetCheck(i) ){
selIndex = i; //该行被选中
}
}
获得选择行的值
CString strInfo = m_listShow.GetItemText(1,1); //返回第一行第一列的值GetItemText(nRow, nColumn) ,注意行和列是从0开始计数的