美文网首页
win32 ListView 部分用法总结

win32 ListView 部分用法总结

作者: 牛魔王的眼泪 | 来源:发表于2017-10-03 10:26 被阅读0次

     现在编程慢慢的抛弃了黑框,喜欢用界面编程。前几天想起来大学的时候C语言做的学生信息管理系统。 突然兴趣来了,用 win32 做了界面来完成当年的编程,做了简化。 效果图如下:

    接下来, 我就总结listView的一点基本用法:

    1. ListView 初始化:(选择 view 为 report)

    1.1 给list控件添加列标题,设置网格线风格 。在WM_INITDIALOG 消息里面做如下处理:

    ListView_SetExtendedListViewStyle(hListWnd, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES); 

    /*

    LVS_EX_FULLROWSELECT 选中高亮

    LVS_EX_CHECKBOXES 勾选框

    LVS_EX_GRIDLINES 网格线

    */

    lvcolum.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

    lvcolum.fmt = LVCFMT_CENTER;

    lvcolum.cx = 100;

    lvcolum.pszText = L"学号";

    lvcolum.iSubItem = 0;

    ListView_InsertColumn(hListWnd, 0, &lvcolum);

    lvcolum.cx = 140;

    lvcolum.pszText = L"姓名";

    lvcolum.iSubItem = 1;

    ListView_InsertColumn(hListWnd, 1, &lvcolum);

    lvcolum.cx = 140;

    lvcolum.pszText = L"班级";

    lvcolum.iSubItem = 2;

    ListView_InsertColumn(hListWnd, 2, &lvcolum);

    lvcolum.cx = 210;

    lvcolum.pszText = L"入学时间";

    lvcolum.iSubItem = 3;

    ListView_InsertColumn(hListWnd, 3, &lvcolum);

    2. 向list控件里面添加内容, 这个在响应“增加”按钮里面处理:

    lv.mask = LVIF_TEXT;

    lv.iSubItem = 0;

    lv.iItem = nIndex++; //第几行的索引

    lv.iImage = 0;

    lv.pszText = wstrId;

    ListView_InsertItem(hListWnd, &lv);

    lv.iSubItem = 1;

    lv.pszText = wstrName;

    ListView_SetItem(hListWnd, &lv);  //先要插入一项,然后再设置每一项item

    lv.iSubItem = 2;

    lv.pszText = wstrClass;

    ListView_SetItem(hListWnd, &lv);

    lv.iSubItem = 3;

    lv.pszText = wstrEnterTime;

    ListView_SetItem(hListWnd, &lv);

    3. 删除list控件里面的内容:

    int nSelectItem = ListView_GetSelectionMark(hListWnd); //获取鼠标选中项的索引

    SendMessage(hListWnd, LVM_DELETEITEM, nSelectItem, 0); //LVM_DELETEITEM 消息删除nSelectItem item。

    4. 查询信息:

    int nSelectIndex = ListView_GetSelectionMark(hListWnd);

    TCHAR wstrText[4][128] = { 0 };

    //通过一个for循环 能够获取第 nSelectIndex item的所有内容 

    for (int i = 0; i < 4; i++)

    {

    ListView_GetItemText(hListWnd, nSelectIndex, i, wstrText[i], sizeof(wstrText[i]));

    }

    5. 修改学生信息:(以修改学生姓名为例)

    if (lstrlen(wstrName) != 0)

    {

    lv.mask = LVIF_TEXT;

    lv.iSubItem = 1;

    lv.iItem = nSelectIndex;

    lv.pszText = wstrName;

    SendMessage(hListWnd, LVM_SETITEM, 0, (LPARAM)&lv);

    }

    LVM_SETITEM 消息设置item内容。wparam 必须是0;

    相关文章

      网友评论

          本文标题:win32 ListView 部分用法总结

          本文链接:https://www.haomeiwen.com/subject/jzvxyxtx.html