MFC:List Control 列表控件

最近更新于 2025-03-05 00:07

Table of Contents

测试环境

使用示例

新建一个基于对话框的 MFC 应用 listControlProject
file

删除模板自带的控件,添加一个 List Control,将其调整到合适的位置和大小,将属性里的视图改为Report
file

在这个控件上右键添加变量
file

在项目 Dlg 类中的 OnInitDialog 方法中编写初始化对话框操作

    // 插入表头
    CString headers[] = {L"姓名",L"年龄",L"性别",L"电话",L"地址"};
    size_t columns = sizeof(headers) / sizeof(headers[0]);
    for (size_t i = 0; i < columns; ++i)
    {
        this->listControl.InsertColumn(i, headers[i], LVCFMT_LEFT, 100);
    }

    // 插入数据
    std::vector<std::vector<CString>> dataList = {
        {L"张三",L"20",L"男",L"123456",L"北京"},
        {L"李四",L"25",L"女",L"654321",L"上海"},
        {L"王五",L"30",L"男",L"987654",L"广州"},
        {L"赵六",L"35",L"女",L"543219",L"深圳"}
    };

    for (size_t row = 0; row < dataList.size(); ++row)
    {
        this->listControl.InsertItem(row, dataList[row][0]); // 插入新的列表项(主文本)
        for (int col = 1; col < dataList[row].size(); ++col)
        {
            this->listControl.SetItemText(row, col, dataList[row][col]); // 设置列表项文本内容
        }
    }

    // 设置整行选中和网格
    this->listControl.SetExtendedStyle(this->listControl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

file

另外上面代码使用了 vector,需要引用这个头文件
file

运行效果
file

MFC:List Control 列表控件
Scroll to top