Владелец рисования работает только в режиме отчета для ListView?

Я хочу нарисовать прямоугольник вокруг элемента ListView, когда ListView находится в режиме Icon, поэтому я начал читать о владельце Draw, который я думал, что это решит мою проблему.

Тем не менее, я также прочитал, что владелец рисования работает только в режиме отчета! Это все еще имеет место в более новых версиях Windows (Windows XP и позже)?

И если это все еще так, то есть ли другой способ нарисовать прямоугольник вокруг элемента ListView?

1 ответ

Решение

Да, LVS_OWNERDRAWFIXED стиль имеет смысл только для LVS_REPORT дело. Но есть и другой способ - вы можете обработать NM_CUSTOMDRAW уведомления о том, что listview отправляет вам. Они отправляются для всех режимов управления, и в зависимости от того, что вы хотите сделать, вы можете обрабатывать CDDS_ITEMPOSTPAINT уведомление, использование dwItemSpec поле как индекс элемента, отправьте LVM_GETITEMRECT из вашего обработчика WM_NOTIFY и делайте с ним все, что вы хотите.

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