C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Возможность редактирования текста элемента / TreeCtrl, TreeView / Элементы управления

Возможность редактирования текста элемента

Для получения возможности редактирования текста, дерево должно быть создано с флагом TVS_EDITLABELS. Его можно установить в редакторе ресурсов, при вызове функции Create() или PreCreateWindow(), если Вы используете CTreeView класс.
Затем Вы должны перехватить и обработать сообщения TVN_BEGINLABELEDIT и TVN_ENDLABELEDIT. По правде говоря, никакой необходимости нет перехватывать TVN_BEGINLABELEDIT, но таким методом можно ограничить длину текста, вводимого пользвателем.


void COutline::OnBeginLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{
 TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
 // Устанавливаем лимит в 127 символов
  GetEditControl()->LimitText(127);

 *pResult = 0;
}

Наиглавнейшей идеей в этой статье, стал перехват TVN_ENDLABELEDIT сообщения, которое позволяет нам обновлять внутренние структуры данных, которые использует элемент управления. Ввод следующих строк необходим для того, чтобы после конца редактирования обновления вступали в силу, если же этого не сделать, то строка вернется к исходному значению.


void COutline::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{
 //Устанавливаем result в TRUE для принятия изменений 
 *pResult = TRUE;
}

 

Источник: ProtoSphere