Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CTreeCtrl: как сделать чтобы, при нажатии на checkbox, строка выделяла 
:(
    Опции темы
Rickert
Дата 14.7.2006, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Есть дерево с чекбоксами. Когда нажимаешь на чекбокс, она его отмечает галочкой, а элемент дерева, который соответсвует этому checkbox'у, не выделяет и прыгает выделением на тоот, который был выделен до этог.
Как сделать так, чтобы она выделяла строку, при нажатии на чекбокс? 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Earnest
Дата 14.7.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ручками: обрабатывать уведомление об изменении состояния (TVN_STATECHANGE), в случае правильных параметров ставить выделение (SetItemState). 


--------------------
...
PM   Вверх
Rickert
Дата 14.7.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Правильные параметры - это какие?  

Это сообщение отредактировал(а) Rcikert - 14.7.2006, 09:56


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 14.7.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Код

POINT pt_action = {0};

GetCursorPos(&pt_action);
ScreenToClient(&pt_action);
    
HTREEITEM treeItem = HitTest(pt_action);

UINT my = GetItemState(treeItem, 0);

Где список вообще взять возможных флагов? В MSDN только:
Цитата

TVIF_CHILDREN
The cChildren member is valid.
TVIF_DI_SETITEM
The tree-view control will retain the supplied information and will not request it again. This flag is valid only when processing the TVN_GETDISPINFO notification.
TVIF_HANDLE
The hItem member is valid.
TVIF_IMAGE
The iImage member is valid.
TVIF_PARAM
The lParam member is valid.
TVIF_SELECTEDIMAGE
The iSelectedImage member is valid.
TVIF_STATE
The state and stateMask members are valid.
TVIF_TEXT
The pszText and cchTextMax members are valid.
  

Это сообщение отредактировал(а) Rcikert - 14.7.2006, 10:21


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Earnest
Дата 14.7.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Каких флагов? Там по каждому поводу свои флаги. И все описано.
Только вот с TVN_STATECHANGED я тебя обманула, извини, перепутала: нет такого уведомления.
Нужно перехватить нажатие левой кнопки мыши (OnLButtonDown), либо уведомление NM_CLICK. И всегда делать  SetItemState (hItem, TVIS_SELECTED, TVIS_SELECTED); Если будешь обработывать OnLButtonDown - не забудь вызвать стандартную обработку. 


--------------------
...
PM   Вверх
Rickert
Дата 15.7.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Earnest
При этом ещё нужно будет менять статус того элемента, который был выделен до этого  на "невыделенный", иначе у тебя получиться несколько выделенных элементов. 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
GioTraliVali
Дата 16.7.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.4.2006

Репутация: нет
Всего: нет



Цитата(Rcikert @ 14.7.2006,  09:38)
Есть дерево с чекбоксами. Когда нажимаешь на чекбокс, она его отмечает галочкой, а элемент дерева, который соответсвует этому checkbox'у, не выделяет и прыгает выделением на тоот, который был выделен до этог.
Как сделать так, чтобы она выделяла строку, при нажатии на чекбокс?

Slu6ai voobsheto derevo s chekboxami ne lubluy ia ego ia delau tak!!!
1.beru derevo bez stila chekboxov!!!
2.sozdau bitmap odin s cheknutim vtoroi bez cheknutogo!!!
3 .Etot bitmap podsoedinau k derevu!!!
4 pri dobavlenii ispolzuiu InsertItem(HTREEITEM,image,selImage,HTREEPARITEM)(HTREEPARITEM-eot HTREEITEM -  no ia tak napisal chtob ponial chto eto roditelskii)
5.Pishu funkciu kotoraia peret item i mesto gde cursor bil kliknut i esli na Image to meniau 1 na drugoi image iz nashego privazanogo!!!
6.Pri obrabotke Onclick,OndblClick vizivau etu funkciu

vot i vse. Sorry u menia net doma primerchika esli na rabote naidu u sebia moment gde eto delaetsa to prishlu kod. Udachi!!! 
PM MAIL   Вверх
Earnest
Дата 17.7.2006, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(Rcikert @  15.7.2006,  18:32 Найти цитируемый пост)
При этом ещё нужно будет менять статус того элемента, который был выделен до этого  на "невыделенный", иначе у тебя получиться несколько выделенных элементов.  
 Да, конечно. Можно еще попробовать эмулировать "обычный" клик, чуть-чуть сдвинув точку вправо, но я предпочитаю руками поправить состояние... 

GioTraliVali, будь добр, пользуйся транслитом: читать твои посты невозможно...

Добавлено @ 07:39 
Дерево со стилем checkbox - это просто "быстрый" путь использования стандартных state-image'й. 
Из такого дерева можно легко извлечь ImageList со стандартными чек-боксами, можно ему подсунуть свои картинки для чек-боксов, изменить число состояний (добавить неопределенное, например).
Вопрос Rcikert совершенно не о том.  


--------------------
...
PM   Вверх
GioTraliVali
  Дата 17.7.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.4.2006

Репутация: нет
Всего: нет



Цитата(Earnest @ 17.7.2006,  07:33)
Цитата(Rcikert @  15.7.2006,  18:32 Найти цитируемый пост)
При этом ещё нужно будет менять статус того элемента, который был выделен до этого  на "невыделенный", иначе у тебя получиться несколько выделенных элементов.  
 Да, конечно. Можно еще попробовать эмулировать "обычный" клик, чуть-чуть сдвинув точку вправо, но я предпочитаю руками поправить состояние... 

GioTraliVali, будь добр, пользуйся транслитом: читать твои посты невозможно...

Добавлено @ 07:39 
Дерево со стилем checkbox - это просто "быстрый" путь использования стандартных state-image'й. 
Из такого дерева можно легко извлечь ImageList со стандартными чек-боксами, можно ему подсунуть свои картинки для чек-боксов, изменить число состояний (добавить неопределенное, например).
Вопрос Rcikert совершенно не о том.

нe читаи тебя никто не просит.я никогда нe пишу то, что сам нa практикe не проeрял и потом исползовал во многих програмах.так что твоего перевода человеку кому я обяснял не нujen.вопрос как раз об етом.мнe вообщето пофиг.я подал совет.а осталное ваше дело!!!! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.