c语言 listview,win32 ListView 部分用法总结

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

988328daf92f

接下来, 我就总结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;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值