




Не пытайтесь использовать CListCtrl.
Используйте MFC Grid Control. Мы успешно развертываем его в готовом приложении. Он предлагает редактирование на месте, флажок, вращение и т. д. Для всех ячеек, а также заголовки столбцов и строк, автоматический размер, автоматическое расширение, цвета, перетаскивание.
Это выполнимо, но требует изрядного количества щелчков мышью и событий фокусировки.
Вкратце, вы перехватываете сообщение о нажатии левой кнопки мыши и преобразуете его в сведения о попадании в ячейку (то есть в индекс строки и столбца).
С помощью этих сведений о ячейке вы не можете определить размер и расположение ячейки представления списка, а также текстовое значение, которое она содержит.
Теперь создайте элемент управления CEdit непосредственно над этой ячейкой, используя сведения о размере и расположении из предыдущего шага, и присвойте ему текстовое значение ячейки.
Последним шагом является обработка событий фокуса и ввода с клавиатуры для CEdit, чтобы текстовые данные CEdit можно было вернуть обратно в ячейку представления списка.
Это требует изрядного количества кодирования, но когда все сделано правильно, оно хорошо работает как альтернатива сетке.
Лучше используйте codeproject.com/KB/list/CGridListCtrlEx.aspx, он чертовски не урод на Vista / Win7