?現(xiàn)在編程慢慢的拋棄了黑框,喜歡用界面編程码泛。前幾天想起來大學(xué)的時候C語言做的學(xué)生信息管理系統(tǒng)。 突然興趣來了澄耍,用 win32 做了界面來完成當(dāng)年的編程噪珊,做了簡化。 效果圖如下:
接下來齐莲, 我就總結(jié)listView的一點(diǎn)基本用法:
1. ListView 初始化:(選擇 view 為 report)
1.1 給list控件添加列標(biāo)題痢站,設(shè)置網(wǎng)格線風(fēng)格 。在WM_INITDIALOG 消息里面做如下處理:
ListView_SetExtendedListViewStyle(hListWnd, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES);?
/*
LVS_EX_FULLROWSELECT 選中高亮
LVS_EX_CHECKBOXES 勾選框
LVS_EX_GRIDLINES 網(wǎng)格線
*/
lvcolum.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvcolum.fmt = LVCFMT_CENTER;
lvcolum.cx = 100;
lvcolum.pszText = L"學(xué)號";
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"入學(xué)時間";
lvcolum.iSubItem = 3;
ListView_InsertColumn(hListWnd, 3, &lvcolum);
2. 向list控件里面添加內(nèi)容选酗, 這個在響應(yīng)“增加”按鈕里面處理:
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); ?//先要插入一項(xiàng)阵难,然后再設(shè)置每一項(xiàng)item
lv.iSubItem = 2;
lv.pszText = wstrClass;
ListView_SetItem(hListWnd, &lv);
lv.iSubItem = 3;
lv.pszText = wstrEnterTime;
ListView_SetItem(hListWnd, &lv);
3. 刪除list控件里面的內(nèi)容:
int nSelectItem = ListView_GetSelectionMark(hListWnd); //獲取鼠標(biāo)選中項(xiàng)的索引
SendMessage(hListWnd, LVM_DELETEITEM, nSelectItem, 0); //LVM_DELETEITEM 消息刪除nSelectItem item。
4. 查詢信息:
int nSelectIndex = ListView_GetSelectionMark(hListWnd);
TCHAR wstrText[4][128] = { 0 };
//通過一個for循環(huán) 能夠獲取第 nSelectIndex item的所有內(nèi)容?
for (int i = 0; i < 4; i++)
{
ListView_GetItemText(hListWnd, nSelectIndex, i, wstrText[i], sizeof(wstrText[i]));
}
5. 修改學(xué)生信息:(以修改學(xué)生姓名為例)
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 消息設(shè)置item內(nèi)容星掰。wparam 必須是0多望;