list view

  1. listviewview属性要设置为 report

使用步骤

  1. 创建 表头
  2. 插入数据
  3. 插入数据的本质是一格一格插入数据,不能一整条一起插进去
  4. 必须先插入 首列记录 才能插入后几列的数据

创建表头

  1. 这里一共插入的5列,编号0-4
  2. 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);
}

插入数据

  1. 这函数经过封装 直接向某个单元格插入数据
  2. 注意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;
}
Last modification:October 26, 2018
如果觉得我的文章对你有用,请随意赞赏