强制更新虚拟CListCtrl



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

由于数据量的原因,我将其实现为提供的虚拟列表

ON_NOTIFY(LVN_GETDISPINFO, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnGetdispinfoLstIcons)
ON_NOTIFY(LVN_ODFINDITEM, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnOdfinditemLstIcons)

我的问题是,当我更改列表内容时,这些回调永远不会被调用。

我怎么能强迫它?

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

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

最新更新