MFC列表控件相关操作

列表控件

在工具栏中选择List Control(而不是List Box),在右侧属性栏中,选择View,将Icon改为Report(报表模式)右键列表控件,选择添加变量,将作用域改为Private,变量名起m_list,之后在主对话框的.cpp文件OnInitDialog函数中添加初始化值:在这里插入图片描述
给出代码方便复制:

 CString str[] = { TEXT("姓名"),TEXT("性别"),TEXT("年龄") };//准备数据
 for (int i = 0;i < 3;i++)
 {
  m_list.InsertColumn(i,str[i],LVCFMT_LEFT,100);//添加每一列的表头 参数 1索引 2内容 3对齐方式 4每列宽度
 }
 //设置正文 表头不算正文里的内容,索引从0开始
 m_list.InsertItem(0,TEXT("小明"));
 //给上面的Item插入其他数据
 m_list.SetItemText(0,1,TEXT("男"));//参数 1行 2列 3内容 
 //会了上述操作,就可以制表了

上述是给一行进行初始化操作,如果要对多行操作,利用for循环即可:

//列表控件使用
 CString str[] = { TEXT("姓名"),TEXT("性别"),TEXT("年龄") };//准备数据
 for (int i = 0;i < 3;i++)
 {
  m_list.InsertColumn(i,str[i],LVCFMT_LEFT,100);//添加每一列的表头 参数 1索引 2内容 3对齐方式 4每列宽度
 }
  int j;
 for(int i = 0,j = 0; i < 10;i++)
 {
  j = 0;
  CString name;
  name.Format(TEXT("张三_%d"), i);//CString 的格式化为Format
  m_list.InsertItem(i,name);
  //性别和年龄
  m_list.SetItemText(i,++j,TEXT("男"));//++j是1,j++是0
  m_list.SetItemText(i,++j,TEXT("18"));
 }

上述代码的运行效果如图:
在这里插入图片描述

由图可以看出,还有一些表格的属性有待设置,如网格,整行选中等等:
只需在上述代码最后添加如下即可:

//设置属性 如:整行选中状态,显示网格
 m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);//要想设置新的,就得获取之前的状态

猜你喜欢

转载自blog.csdn.net/qq_42308217/article/details/108257440