2014-02-08 3 views
1

У меня есть стандартный элемент управления Tab, созданный с помощью WS_EX_COMPOSITED Extended Window Style для устранения мерцания при изменении размера вкладки, но одно из дочерних окон Tab - это ListView (LVS_OWNERDRAWFIXED), который установлен на LVS_REPORT, и эта комбинация, похоже, поглощает использование ЦП, даже если в списке нет строк. Таким образом, пустой ListView на вкладке ничего не делает, имеет 48% использования ЦП, изменение представления ListView или удаление WS_EX_COMPOSITED исправляет проблему с ЦП, но мне действительно нужно LVS_REPORT, так как я могу, если можно, использовать WS_EX_COMPOSITED с дочерним окном ListView или добиться того же результата, что и WS_EX_COMPOSITED, в том, что он останавливает беспорядочное мерцание.Вкладка управления высокой загрузкой процессора с WS_EX_COMPOSITED

ответ

2

Вам нужно только WS_EX_COMPOSITED при изменении размера. Поэтому целесообразным решением является включение только при изменении размера. Слушайте WM_ENTERSIZEMOVE, и когда вы его получите, включите WS_EX_COMPOSITED. Когда вы получите WM_EXITSIZEMOVE, удалите WS_EX_COMPOSITED.

Смежные вопросы