Я хочу скрыть или отключить элементы с помощью SetItemState (). CListCtrl находится в представлении отчета.
Это должно быть что-то вроде этого m_List.SetItemState(1, DISABLE, DISABLE);
Я искал, но не нашел нужного nState
Если есть другое решение, чем SetItemState, это также будет хорошо
Может кто-нибудь мне помочь?
Нет состояния элемента для представления отключенного (серого) элемента. Увидеть документы
Единственный способ решить эту проблему — ваша собственная реализация и использование пользовательского рисования. Это способ, которым я делаю это.
Вы можете легко запретить пользователю выбирать элемент, когда вы ловите LVN_ITEMCHANGING. Просто отфильтруйте состояние Изменить на LVIS_SELECTED и верните TRUE, чтобы предотвратить изменение.
Вы можете дать визуальный отзыв. Я бы вывел класс CMFCListCtrl
и переопределить OnGetCellBkColor
а также OnGetCellTextColor
методы для достижения этого.
И я бы переопределил свой ответ на выбор, чтобы отменить выбор при выборе невыбираемого элемента. Однако в этой части я не уверен, выполнимо ли это.