Возможность редактирования текста элементаДля получения возможности редактирования
текста, дерево должно быть создано с флагом TVS_EDITLABELS.
Его можно установить в редакторе ресурсов, при
вызове функции Create() или PreCreateWindow(), если Вы
используете CTreeView класс.
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
|