![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
CynicRus |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Приветствую уважаемых форумчан. Потребовалось мне к маленькой консольной тулзе прикрутить маленький GUI. Выбор пал на чистый WinApi, благо я давно собирался это освоить. Так вот, собственно на форме имеются ListView, TreeView и кнопка. По нажатию кнопки заполняется структура. Мне необходимо засунуть в lParam TVITEM индекс, под которым этот элемент был добавлен в дерево.
Код записи:
в lParam тут пишется I, вроде всё замечательно. Затем мне необходимо по даблклике на элементе TreeView добавить из структуры в listview. Соответственно, мне надо забрать из lParam индекс. Вот тут и начинаются проблемы. Пытаюсь забрать данные следующим образом:
Так вот в i после этого оказывается всё что угодно, кроме того что я туда записывал. Вот собственно и вопрос - как правильно связать TreeView с ListView? |
||||
|
|||||
CynicRus |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Ну а если я в lParam структуру пакую, то на выходе получаю всё равно балалайку:
|
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
А вы пишете под Windows CE? Почему я спрашиваю? Потому что TV_INSERTSTRUCT относится к Windows CE. Если вы пишете просто под Windows, то вам нужна TVINSERTSTRUCT. Скорее всего, из-за такого не соответствия и возникают "приколы".
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
CynicRus |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Во как...Спасибо, не знал.
|
|||
|
||||
CynicRus |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Тем не менее - не помогло.
Я уже попробовал структуру, содержащую int для передачи индекса:
Пакую в lParam:
Пытаюсь достать:
И в idx всегда одно и тоже значение 0x215. |
||||||
|
|||||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
iIndex = 55. Что я не так сделал? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
CynicRus |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 248 Регистрация: 31.5.2012 Репутация: нет Всего: 5 |
Вы получаете и отдаёте индекс в рамках одной функции. Попробуйте в одной функции число записать а из другой его прочитать. Мне ведь необходимо в этот парам записывать индекс внутреннего дерева, чтобы затем по клике на TreeView выдать в ListView нужную ветвь. Хахахахахахаха, странно - но заработало. после 3 дней мозгового штурма! Хахахаха! Спасибо! Это сообщение отредактировал(а) CynicRus - 25.3.2013, 11:44 |
||||
|
|||||
HANDLE |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.6.2008 Репутация: нет Всего: нет |
Не мешало бы проверить что возвращает TreeView_GetItem(), может ошибка.
И в маске item.mask = TVIF_TEXT | TVIF_PARAM; флажок TVIF_TEXT лишний, потому что для текста нужно еще задать буфер и размер буфера в item. |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
HANDLE, всё верно. Но так как указана длина буфера 0, то этот флаг просто проигнорируется.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |