提示
- 创建MFC项目
- 添加 listControl 控件
- 设置视图:Report
- 添加关联变量:m_CListCtrl
设置选中整行
在::OnInitDialog()内添加
//设置选中整行
m_CListCtrl.SetExtendedStyle(m_CListCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER);
插入 “行”/"列"设置内容
插入列内容
// 插入表头列内容
m_CListCtrl.InsertColumn(0, TEXT("PID"), LVCFMT_LEFT,50);
m_CListCtrl.InsertColumn(1, TEXT("PROCESS NAME"), LVCFMT_LEFT, 200);
m_CListCtrl.InsertColumn(2, TEXT("Priority class"),LVCFMT_LEFT,100);
插入行内容
//清空列表
m_CListCtrl.DeleteAllItems();
int iRows = m_CListCtrl.GetItemCount();//获取总行数
m_CListCtrl.InsertItem(iRows, TEXT(""));//插入1行
m_CListCtrl.SetItemText(iRows, 0, str);//设置iRows行0列内容
m_CListCtrl.SetItemText(iRows, 1, pe32.szExeFile);//设置iRows行1列内容
获取选中行内容
方法1
int nIndex = m_CListCtrl.GetSelectionMark();//获取选中的行
CString strPID = m_CListCtrl.GetItemText(nIndex, 1); //选中的行、列的值
AfxMessageBox(strPID);
方法2
POSITION p = m_CListCtrl.GetFirstSelectedItemPosition();//获取当前选中的行的第一行的位置
//获取选中的第一行的行索引
int nIndex = m_CListCtrl.GetNextSelectedItem(p);//可能多选,GetNextSelectedItem使p移动一个位置
//得到第index行.第2列的内容(下标从0开始)
CString strColumn = m_CListCtrl.GetItemText(nIndex, 1);
AfxMessageBox(strColumn);
获取总行数/总列数
获取总行数
//获取总行数
int iRows = m_CListCtrl.GetItemCount();//获取总行数
CString str;
str.Format(TEXT("%d"), iRows);
AfxMessageBox(str);
获取总列数
//获取列数
int nColumnCount = m_CListCtrl.GetHeaderCtrl()->GetItemCount();
CString str;
str.Format(TEXT("%d"), nColumnCount);
AfxMessageBox(str);
删除 “行” / “列”
//删除行
int nIndex = m_CListCtrl.GetSelectionMark();//获取选中的行
m_CListCtrl.DeleteItem(nIndex);//删除选中行
//删除列
m_CListCtrl.DeleteColumn(0);//删除第0列
添加双击事件
CListCtrl的双击消息为NM_DBLCLK,要实现其双击事件,需要添加对NM_DBLCLK事件的响应。