list view
listview
的view
属性要设置为report
使用步骤
- 创建 表头
- 插入数据
- 插入数据的本质是一格一格插入数据,不能一整条一起插进去
- 必须先插入 首列记录 才能插入后几列的数据
创建表头
- 这里一共插入的5列,编号
0-4
iSubItem
用于后续插入数据时 匹配到 相同的列
void initial_listview(){
LVCOLUMN vcl;//用于描述表头的结构体
memset(&vcl, 0, sizeof(vcl)); // Zero Members
// 获取ListView控件的句柄
hListView = GetDlgItem(hDlg, IDC_FILE_LIST);
// 设置ListView的列;
vcl.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
// 第一列
vcl.pszText = (LPWSTR)L"文件名";//列标题
vcl.cx = 300;//列宽
vcl.iSubItem = 0;//子项索引,第一列无子项
ListView_InsertColumn(hListView, 0, &vcl);
// 第二列
vcl.pszText = (LPWSTR)L"文件大小";
vcl.cx = 100;
vcl.iSubItem = 1;//子项索引
ListView_InsertColumn(hListView, 1, &vcl);
// 第三列
vcl.pszText = (LPWSTR)L"大小单位";
vcl.cx = 100;
vcl.iSubItem = 2;
ListView_InsertColumn(hListView, 2, &vcl);
// 第四列
vcl.pszText = (LPWSTR)L"数据类型";
vcl.cx = 100;
vcl.iSubItem = 3;
ListView_InsertColumn(hListView, 3, &vcl);
// 第四列
vcl.pszText = (LPWSTR)L"修改日期";
vcl.cx = 158;
vcl.iSubItem = 4;
ListView_InsertColumn(hListView, 4, &vcl);
}
插入数据
- 这函数经过封装 直接向某个单元格插入数据
- 注意
iItem
指的是在当前第几行数据后插入
int listview_add_node(TCHAR *name, int row, int column)
{
LVITEM vitem;
vitem.mask = LVIF_TEXT;
vitem.pszText = name; //显示的字符串
vitem.iItem = row; //第几行后添加
vitem.iSubItem = column; //该行的第几个元素
if (column == 0) {
ListView_InsertItem(hListView, &vitem); //增加首元素
}
else {
ListView_SetItem(hListView, &vitem); //增加非首元素 要用另外的函数
}
return TRUE;
}