LV_ITEM lvitem; LV_COLUMN lvcolumn; int iItem, iSubItem, iActualItem; //定义列表视图的列 for (i = 0; i < 2; i++) { lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; lvcolumn.fmt = LVCFMT_LEFT; lvcolumn.pszText = rgtsz[i]; lvcolumn.iSubItem = i; lvcolumn.cx = rect.Width() * (i + 1) / 4; //将第2列宽度设置成第1列宽度3倍 pListCtrl->InsertColumn(i, &lvcolumn); //插入列 } //向列表视图里,添加内容 for (iItem = 0; iItem < 50; iItem++) for (iSubItem = 0; iSubItem < 2; iSubItem++) { if (iSubItem == 0) iIcon = Random() % 4; lvitem.mask = LVIF_TEXT | (iSubItem == 0? LVIF_IMAGE : 0); lvitem.iItem = (iSubItem == 0)? iItem : iActualItem; lvitem.iSubItem = iSubItem; lvitem.pszText = iSubItem == 0? rgtszIconType[iIcon] : rgtszIconDescrip[iIcon]; lvitem.iImage = iIcon; //判断,如果是添加第1列,则应该添加一行,否则,只要设置这一行即可。 if (iSubItem == 0) iActualItem = pListCtrl->InsertItem(&lvitem); else pListCtrl->SetItem(&lvitem); }