Как изменить размер элемента и расстояние между ними в Custom Drown CListCtrl - PullRequest
1 голос
/ 24 октября 2008

Насколько я знаю, 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 - мой единственный вариант здесь?

1 Ответ

1 голос
/ 26 октября 2008

Обновление.
Я собрал тот же пользовательский элемент управления списком нарисованных в VS2008. И внешний вид был другим. Размер предмета был идеальным, и между ними не было зазоров. Я предполагаю, что проблема с размерами была только в MFC для VS2003, который я использовал изначально. Чувак, MFC - это постоянный взлом HACK: -)

Я думаю, что вопрос закрыт.
Спасибо (мне).

...