#mfc
Вопрос:
Я использую элемент управления CListCtrl для отображения информации в моем приложении MFC. На данный момент у меня установлены флажки LVS_EX_ в SetExtendedStyle, поэтому все строки в элементе управления имеют флажок рядом с ними. Однако мне бы хотелось, чтобы только в некоторых строках элемента управления были установлены флажки. Возможно ли это ? Если да, то как это делается ?
Спасибо
Иан
Ответ №1:
Для каждого элемента, у которого не должно быть флажка:
LVITEM lvi;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(0);
::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)amp;lvi);
Чтобы «создать» флажок для элемента:
SetCheck(Item, true/false);
Комментарии:
1. быстрый Q — щелчок на месте, где будет установлен флажок, вызовет его, это я или функция CListCtrl?
2. @Serge: Есть ли ответ на gbjbannb?
Ответ №2:
Да, так и есть. Все, что вам нужно будет сделать, это создать растровые изображения флажков и включить их в обратный вызов. Одна из ваших битовых карт будет пустой.
В качестве альтернативы вы можете сделать какой-нибудь рисунок владельца и вызвать функцию DrawFrameControl.
Вы также можете добавить код для проверки щелчков мыши и ответить соответствующим образом.