Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактируемые ячейки в таблице. 
:(
    Опции темы
Гость_Oleg IT
Дата 6.12.2005, 09:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Работаю с таблицей класс CListCtrl. До настоящего момента вопросов не было. Появилась необходимость редактировать ячейки. Пробовал ставить стиль LVS_EDITLABELS функцией ListView_SetExtendedListViewStyle(…), не получается. Может какой другой класс применить для этого? И есть ли возможность редактировать ячейки только в заданных столбцах?

  Вверх
threef
Дата 6.12.2005, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

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



Сам CListCtrl не поддерживает редакторования ячеек, для этого нужно добавить свой редактор, установить его на место редактируемой ячейки, скопировать в него текст, отредактировать, скопировать текст обратно в список. У меня где-то есть класс "таблица", вот действия по установке редактора:

Код

void CGrid::OnRclick(NMHDR* p, LRESULT* pResult)
{
    
    NMITEMACTIVATE *np=(NMITEMACTIVATE*)p;
    ROW=np->iItem;
    COL=np->iSubItem;
    CPoint pt(np->ptAction),position;
    CRect r;
    if(ROW<0)
    {
    // определяем строку с позицией клика(свой метод)
    ROW=GetCellPoint(position,pt);
    }
    // подсвечиваем строку
    SetSelectionMark(ROW);
    // прямоугольник выбранной ячейки(свой метод)
    GetCellRect(ROW,COL,r);()
    r.DeflateRect(1,1);
    // "натягиваем" на ячейку редактор 
    Edit.MoveWindow(&r);
    Edit.ShowWindow(SW_SHOW);
    Edit.SetFocus();
    Edit.SetWindowText(
                   //класс Grid - свой, получаю текст ячейки
                   (*this)[ROW][COL].text()
             );
  *pResult = 0;
}



* свой метод - его нет в CListCtrl
PM MAIL   Вверх
Гость_Oleg IT
Дата 6.12.2005, 16:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо. Но теперь другая проблема, CEdit не реагирует на Enter, т.е. не найду сообщения которое вызывалось по Enter. Как его к этому принудить?
  Вверх
threef
Дата 7.12.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

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



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


 




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


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

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