Принудительное обновление виртуального CListCtrl
У меня есть CListCtrl, содержащий около 2500 различных элементов, состоящих из значка 48x48 и текста.
Из-за объема данных я реализовал его как виртуальный список
ON_NOTIFY(LVN_GETDISPINFO, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnGetdispinfoLstIcons)
ON_NOTIFY(LVN_ODFINDITEM, IDC_LST_ICONS, &CWGDIconSearchDlg::OnLvnOdfinditemLstIcons)
Моя проблема в том, что когда я изменяю содержимое списка, эти обратные вызовы никогда не вызывают
Как я могу заставить это?
1 ответ
Решение
Windows не может знать, что вы изменили элемент в виртуальном списке.
Чтобы вызвать перерисовку вашего CListCtrl, вы должны вызвать yourcontrol.Invalidate()
который вызовет перекрашивание вашего контроля.