MFC控件(5):List Control
2013-04-07 15:58
1081 查看
要查看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(1,"Name"); //第二列,这里没有指定列标题的宽度
m_listShow.InsertColumn(2,"Age"); //第三列
m_listShow.GetClientRect(rect);
m_listShow.SetColumnWidth(1, rect.Width()/2); //指定第二列宽度为整个控件区域的一半大小
//指定第三列宽度
m_listShow.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER); //根据列内容自动调整宽度
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.DeleteColumn(0); //删除指定列,这里是删第一列
m_listShow.DeleteAllItems(); //删除所有数据
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; //该行被选中
}
}
这四种方式分别对应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); //第一列,宽度为80m_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开始计数的相关文章推荐
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- 自绘MFC List Control列表控件时无法改变表头CHeaderCtrl高度问题的解决方法
- MFC中List Control控件的使用及实时显示系统时间的方法
- MFC入门学习之控件(5)标签控件List Control的添加和使用(中)
- C++ MFC combo box和list control控件的使用
- MFC中list control控件设置
- MFC中的listcontrol控件连接mysql数据库输出数据
- C++ 关于MFC List Control 控件的总结
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC控件(5):List Control
- MFC控件List Control的样式LVS_与扩展样式LVS_EX_
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC之ListControl控件
- MFC 控件最大化和还原,list control奇偶颜色设置
- (转载)VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- MFC编程入门之二十八(常用控件:列表视图控件List Control上)
- MFC中ListControl控件的使用
- (MFC)list control控件 得到某行某列的字符串内容
- (转载)VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- MFC控件之list control(续)---ado