Как мне отредактировать ячейку в списке MFC? - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть CListCtrl элемент управления, который имеет 2 столбца и любое количество строк. Я хочу, чтобы пользователь мог щелкнуть (или, может быть, дважды щелкнуть) «ячейку» и редактировать текст в ней.

Screenshot

Я имею в виду, что я хочу иметь возможность щелкать и редактировать любое место, где написано "ТЕСТ", щелкая текст, чтобы сделать его редактируемым.

Как мне это сделать? Я полагаю, что я должен использовать событие щелчка мыши, но как сделать ячейку редактируемой?

1 Ответ

2 голосов
/ 18 апреля 2010

Это похоже на элемент управления списком в режиме отчета, который отличается от списка. Список box вообще не поддерживает редактирование содержимого. Вы можете написать код самостоятельно, чтобы получить содержимое строки, скопировать его в элемент управления для редактирования, отобразить элемент управления для редактирования точно там, где был показан существующий контент, позволить пользователю редактировать и копировать данные обратно, когда / если пользователь хиты возвращаются.

Элемент управления списком позволяет редактировать одно (и только одно) поле. Если вы хотите поддержать больше, у вас есть несколько вариантов. Можно примерно так же, как описано выше, создать свой собственный элемент управления для редактирования в нужном месте. Очевидной альтернативой будет поиск одного из множества элементов управления сеткой. CodeProject имеет a число из вариаций .

...