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