У меня есть ListView, элементы которого полностью нарисованы с использованием моего кода. Конечно, я использую данные, предоставляемые NMLVCUSTOMDRAW, в основном RECT. Есть два прямоугольника p-> nmcd.rc и p-> rcText, первый из которых содержит достоверную информацию, а другой - всегда 0. Эта проблема заключается в том, что nmcd.rc не содержит корректного rect в Windows XP. Я получаю 0,1, 0,2 или что-то в этом роде.C++ - ListView Custom Drawn в Windows XP
Поскольку это не сработало, я попытался использовать ListView_GetItemIndexRect, который не работает в Win XP, в то время как он работает на Win 7/10.
Глядя на ListView_GetItemIndexRect's msdn page Я вижу, что, по-видимому, он работает только на Vista +. В то же время некоторые другие функции ListView, перечисленные как Vista +, отлично работают в Windows XP.
Windows XP редко встречается среди пользователей моей программы, но все же я бы хотел, чтобы она отлично функционировала. Составление полного списка на моем собственном уровне наверняка устранит проблему, но это тупик.
Я забыл упомянуть, что я попытался с помощью GetSubItemRect, как хорошо, и это не сработало. На самом деле я не могу получить правильный RECT даже в Windows 10 с помощью этой функции, в то время как GetItemIndexRect работает нормально. – Dan