MFC中List控件动态填充数据(LVN_GETDISPINFO)

在使用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 }
原文地址:https://www.cnblogs.com/huangsitao/p/10298250.html