在使用List控件的过程中,有时候List控件中需要添加大量的数据,如果使用InsertItem填充,会一次性将数据全部添加进List控件中,比较耗时。这里记录下如何动态添加List控件数据。
步骤
1.List控件Owner Data属性设置为true,或者在代码中添加
ModifyStyle(,LVS_OWNERDATA|LVS_REPORT);
2.为List控件添加Event,事件名为LVN_GETDISPINFO
3.使用SetItemCount设置List控件总共的数据条数
4.在对应对话框中的OnGetDispinfo函数中,为List控件填充数据
void CTestDlg::OnGetdispinfo(NMHDR* pNMHDR,LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem = &(pDispInfo)->item;
int iItemIndex = pItem->iItem;
if(pItem->mask & LVIF_TEXT)
{
switch(pItem->iSubItem)
{
case ://第0列
lstrcpy(pItem->pszText,str0);
break;
case : //第一列
break;
}
}
}