У меня есть стандартный элемент управления 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
1
A
ответ
2
Вам нужно только WS_EX_COMPOSITED
при изменении размера. Поэтому целесообразным решением является включение только при изменении размера. Слушайте WM_ENTERSIZEMOVE
, и когда вы его получите, включите WS_EX_COMPOSITED
. Когда вы получите WM_EXITSIZEMOVE
, удалите WS_EX_COMPOSITED
.