Принудительное обновление виртуального 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() который вызовет перекрашивание вашего контроля.

Другие вопросы по тегам