Jochen Arndt
Непатентованное средство CListCtrl
не поддерживает столбцы со встроенными элементами управления. Если вам это нужно, вы должны создать свой собственный CListCtrl
основанный класс, поддерживающий это, как это предусмотрено решениями, которые вы, вероятно, уже нашли.
Но они делают это с точки зрения колонки, потому что таково намерение таких списков. Если вам нужны элементы управления только для определенных ячеек, вы должны расширить эти решения. Вы должны создать встроенные элементы управления и сохранить их оконные дескрипторы или указатели в другом списке. Вам также нужна какая-то функция поиска, которая возвращает эти дескрипторы для определенной строки и столбца. Список должен быть пользовательским (пусть встроенный элемент управления перерисовывает сам себя вместо использования чертежа элемента списка по умолчанию) и обеспечивать активацию встроенных элементов управления (установку фокуса) при нескольких событиях мыши и клавиатуры.
Более простым методом может быть использование элементов управления наложением. То есть динамически создавать элементы управления при активации определенной ячейки (например, двойным щелчком мыши или через контекстное меню) и устанавливать на них фокус. После завершения редактирования / выделения ячейка списка может быть обновлена, временный элемент управления удален, а фокус возвращен обратно в список. Но с помощью этого метода не будет никаких указаний на ячейки, которые обеспечивают выделение или редактирование.