强制更新虚拟CListCtrl

时间:2014-10-20 12:27:54

标签: mfc clistctrl

我有一个CListCtrl包含大约2500个不同的元素,包括48x48图标和文本。

由于我将数据量实现为提供

的虚拟列表
ON_NOTIFY(LVN_GETDISPINFO, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnGetdispinfoLstIcons)
ON_NOTIFY(LVN_ODFINDITEM, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnOdfinditemLstIcons)

我的问题是当我更改列表内容时,这些回调从未被调用过。

我该怎么强迫它?

1 个答案:

答案 0 :(得分:2)

Windows无法知道您已更改虚拟列表中的项目。

为了触发重新绘制CListCtrl,您必须调用yourcontrol.Invalidate(),这将触发重新控制您的控件。