Получение hItem нода в TreeView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Получение hItem нода в TreeView

Сообщение visualman » 06.03.2013 (Ср) 12:53

Приветствую.

Как установить оверлей иконку для конкретного нода в TreeView?
На PSC нашёл код, который это делает, но делает он это только для текущего выделенного нода, используя константу TVGN_CARET.

Вот описалово констант: http://www.i2r.ru/static/565/out_17613.shtml

Мне нужна установка оверлея для индекса нода, который я буду находить по ключу нода.

Проблема в строке:
Код: Выделить всё
Private Function TreeView_GetSelection(hWnd As Long) As Long
    TreeView_GetSelection = TreeView_GetNextItem(hWnd, 0, TVGN_CARET)
End Function


Полного решения может и не нужно, подскажите хотябы, куда двигаться. В итоге я должен иметь функцию, в которую передаётся ключ узла, а возвращается hItem этого узла. hItem - член структуры TVITEM

Сорс прикладываю.
Заранее, огромное спасибо!
Вложения
Project.rar
(10.06 Кб) Скачиваний: 67
1.jpg
1.jpg (15.29 Кб) Просмотров: 1114
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Получение hItem нода в TreeView

Сообщение ger_kar » 06.03.2013 (Ср) 18:22

Ну вообще можно получить нужную ноду, а потом зная ноду, и hItem этой ноды получить не проблема, как? Вот здесь есть пример. Правда там речь идет о контроле 5 версии, но в принципе аналогично можно получать hItem и у 6 версии.
Бороться и искать, найти и перепрятать

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Получение hItem нода в TreeView

Сообщение visualman » 06.03.2013 (Ср) 19:59

ger_kar писал(а):Ну вообще можно получить нужную ноду, а потом зная ноду, и hItem этой ноды получить не проблема, как? Вот здесь есть пример. Правда там речь идет о контроле 5 версии, но в принципе аналогично можно получать hItem и у 6 версии.


Спасибо!

Код: Выделить всё
Private Function hItemFromNode(nod As Node) As Long
   CopyMemory hItemFromNode, ByVal (ObjPtr(nod) + 68), 4&
End Function


Написано просто,... но вот честно... не внушает доверия ))
Сейчас попробую.
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Получение hItem нода в TreeView

Сообщение visualman » 06.03.2013 (Ср) 20:07

Блин, а ведь работает!!! Огромное спасибо!!!
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Получение hItem нода в TreeView

Сообщение ger_kar » 06.03.2013 (Ср) 20:09

Ну вообще конечно CopyMemory там не к чему. Если копируется всего 4 байта, как в этом случае, то GetMem4 будет значительно лучше, потому что http://bbs.vbstreets.ru/viewtopic.php?f=68&t=36758
Бороться и искать, найти и перепрятать

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Re: Получение hItem нода в TreeView

Сообщение visualman » 06.03.2013 (Ср) 20:32

ger_kar писал(а):Ну вообще конечно CopyMemory там не к чему. Если копируется всего 4 байта, как в этом случае, то GetMem4 будет значительно лучше, потому что http://bbs.vbstreets.ru/viewtopic.php?f=68&t=36758

Совершенно справедливо. Исправил.
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList