Насколько я знаю, ON_WM_MEASUREITEM
не вызывается в элементе управления Custom Draw list. Он используется только в том случае, если элемент управления нарисован владельцем.
Я нашел способ сделать это, но это своего рода ХАК, и я все еще не могу контролировать промежутки между элементами, которые они устанавливают каким-то образом автоматически.
Хитрость заключается в том, что вы можете создать CImageList
с неиспользованными изображениями нужного вам размера, и если вы назначите такой список изображений элементу управления списком, элементы будут изменены до размеров, близких к размеру изображений. После этого вы можете использовать Custom Draw, чтобы раскрасить все, что находится внутри этих увеличенных элементов.
CImageList m_imageList1;
m_imageList1.Create(176, 144, ILC_COLOR32 | ILC_MASK, 5, 1);
GetListCtrl().SetImageList(&m_imageList1, LVSIL_NORMAL);
Итак, вопрос в том, как изменить размер элементов и расстояние между ними в элементе управления Custom Drown?
Или мой единственный вариант - использовать полностью принадлежащий владельцу элемент управления с LVS_OWNERDRAWFIXED
?