Подавление мигания в ListView
От: Antech  
Дата: 02.09.05 07:09
Оценка:
Имеется таблицы SyslistView32 + LVS_REPORT. Когда содержимое обновлается (удаляются/добавляются ячейки) таблица сильно раздражительно мигает. Пробовал отключать рисование в окне на время обновления таблицы функцией LockWindowUpdate() и сообщением WM_SETREDRAW (перед включением перерисовки очередь сообщениий окна таблицы обрабатывается). Увы, мигает, как и прежде. Но в добавок перестает работать скроллинг в таблице (LVM_SCROLL) потому как для этого необходима перерисовка. Пытался рисовать в контекст памяти во время обновления таблицы. Не помогает: LVM_SCROLL не работает. Двойная буферизация (рисование в контекст памяти на WM_PAINT и блиттинг в окно) ничего не улучшило. Более того. Если не отключать перерисовку окна, но не давать стандартной оконной функции таблицы обрабатывать WM_ERASEBKGND и WM_PAINT, заменив это на заливку фона окна черным цветом, то отчетливо промелькивает серый фон при апдейте таблицы. То есть эта дрянь рисует в окно когда надо и не надо.

Как нибудь можно заставить Report-Style ListView работать без мигания?
Поиск положительных резултатов не дал...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.