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 / Элементы управления

Копирование элемента на новое место

Операция копирования достаточна проста, но все же она здесь приводится. В конце вызывается виртуальная функция, которая обеспечивает своевременное обновление всей внутренней информации. Все это сделано для обеспечения расширяемости.


HTREEITEM CTreeCtrlX::CopyItem( HTREEITEM hItem, HTREEITEM htiNewParent, 
HTREEITEM htiAfter /*= TVI_LAST*/ )
{
 TV_INSERTSTRUCT tvstruct;
 HTREEITEM hNewItem;
 CString sText;

 // берем информацию источника
 tvstruct.item.hItem = hItem;
 tvstruct.item.mask = TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
 GetItem(&tvstruct.item);
 sText = GetItemText( hItem );

 tvstruct.item.cchTextMax = sText.GetLength();
 tvstruct.item.pszText = sText.LockBuffer();

 // Вставляем элемент в заданное место
 tvstruct.hParent = htiNewParent;
 tvstruct.hInsertAfter = htiAfter;
 tvstruct.item.mask = TVIF_IMAGE| TVIF_SELECTEDIMAGE | TVIF_TEXT;
 hNewItem = InsertItem(&tvstruct);sText.ReleaseBuffer();

 // Теперь копируем данные и состояние элемента
 SetItemData( hNewItem, GetItemData(hItem ));
 SetItemState( hNewItem, GetItemState(hItem, TVIS_STATEIMAGEMASK ),TVIS_STATEIMAGEMASK );

 // Вызываем виртуальную функцию для дальнейшей обработки наследованного класса
 OnItemCopied( hItem, hNewItem);
 return hNewItem;
}
void CTreeCtrlX::OnItemCopied(HTREEITEM /*hItem*/, HTREEITEM /*hNewItem*/)
{
 // Виртуальная функция

}

 

Источник: ProtoSphere