Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как сделать редактируемую таблицу


Автор: erslgoeirjh 10.10.2016, 15:42
Как сделать нередактируемую таблицу при помощи CListCtrl, я знаю--нужно поставить у этого компонента стиль LV_REPORT, а также расширенный стиль LVS_EX_GRIDLINE. Для изменения цвета сетки нужно переопределить метод OnPaint в компоненте и нарисовать вертикальные и горизонтальные линии по соответствующим координатам. Для возможности множественного выбора нужно поставить расширенный стиль LVS_EX_MULTISELECT.

Но в этом случае таблица будет нередактируемой--в ней нельзя изменить значения ячеек вручную.
Как сделать эту таблицу редактируемой--то есть чтобы можно было во время выполнения программы редактировать значения ячеек?

Автор: Amp 10.10.2016, 16:11
Ты можешь выставить LVS_EDITLABELS, но редактируемой будет только первая колонка. Поэтому если нужно именно in-place редактирование, то нужно будет для заданной ячейки создавать CEdit под ее размер и на enter или потерю фокуса его уничтожать. Если in-place редактирование не нужно, то можно просто при попытке редактирования ячейки отображать модальный диалог с эдитом.

В MFC/WinAPI нет полноценного грида, поэтому (если тебе зачем-то в 2016 году надо писать именно на MFC) давно бы уже взял какой-нибудь сторонний компонент вроде этого http://www.codeproject.com/Articles/20183/The-Ultimate-Grid-Home-Page

Автор: erslgoeirjh 11.10.2016, 09:56
И ещё вопрос: как получить доступ к субайтему у CListCtrl?
Как получить доступ к айтему, я знаю--функции GetItem и SetItem. А как получить доступ к субайтему?

(Я новичок в MFC, поэтому, пожалуйста, не удивляйтесь таким вопросам).

Автор: erslgoeirjh 19.10.2016, 10:56
Цитата(Amp @ 10.10.2016,  16:11)
если тебе зачем-то в 2016 году надо писать именно на MFC


А какие ещё существуют среды разработки для языка C++, кроме Visual C++ и CBuilder?

Автор: Amp 21.10.2016, 15:48
Цитата(erslgoeirjh @  19.10.2016,  10:56 Найти цитируемый пост)
А какие ещё существуют среды разработки для языка C++, кроме Visual C++ и CBuilder?

Дело не только в средах, сколько в библиотеках. Взял бы Qt (в паре со средой QtCreator или хоть той же студией) и писал бы в свое удовольствие, не занимаясь решением всех этих детских проблем, которые возникают при разработке на MFC. Еще из популярного и распространенного есть wxWidgets и GTK (с оговорками).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)