Владелец рисования работает только в режиме отчета для ListView?
Я хочу нарисовать прямоугольник вокруг элемента ListView, когда ListView находится в режиме Icon, поэтому я начал читать о владельце Draw, который я думал, что это решит мою проблему.
Тем не менее, я также прочитал, что владелец рисования работает только в режиме отчета! Это все еще имеет место в более новых версиях Windows (Windows XP и позже)?
И если это все еще так, то есть ли другой способ нарисовать прямоугольник вокруг элемента ListView?
1 ответ
Да, LVS_OWNERDRAWFIXED
стиль имеет смысл только для LVS_REPORT
дело. Но есть и другой способ - вы можете обработать NM_CUSTOMDRAW
уведомления о том, что listview отправляет вам. Они отправляются для всех режимов управления, и в зависимости от того, что вы хотите сделать, вы можете обрабатывать CDDS_ITEMPOSTPAINT
уведомление, использование dwItemSpec
поле как индекс элемента, отправьте LVM_GETITEMRECT из вашего обработчика WM_NOTIFY и делайте с ним все, что вы хотите.