Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать редактируемую таблицу, при помощи CListCtrl? 
:(
    Опции темы
erslgoeirjh
Дата 10.10.2016, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



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

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

PM MAIL   Вверх
Amp
Дата 10.10.2016, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



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

В MFC/WinAPI нет полноценного грида, поэтому (если тебе зачем-то в 2016 году надо писать именно на MFC) давно бы уже взял какой-нибудь сторонний компонент вроде этого http://www.codeproject.com/Articles/20183/...-Grid-Home-Page
PM MAIL   Вверх
erslgoeirjh
Дата 11.10.2016, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



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

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

PM MAIL   Вверх
erslgoeirjh
Дата 19.10.2016, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



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


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

PM MAIL   Вверх
Amp
Дата 21.10.2016, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



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

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

Это сообщение отредактировал(а) Amp - 21.10.2016, 15:49
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.