我有一个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()
,这将触发控件的重绘。