Здравствуйте, alexxx_ltd, Вы писали:
_>Глупый вопрос.. _>Как получить имя итема по RClk в treectrl
_>Код
_> HTREEITEM hCurSel = m_tree.GetSelectedItem() ; _> CString Str = m_tree.GetItemText(hCurSel);
_>Str всегда равен имени первого итема
я так понял, по нажатия правой клв??
если да то так:
HTREEITEM ht = m_tree.HitTest(point);
CString str = m_tree.GetItemText(ht);
Суть в том, что если сначала выделить итем, скажем левым кликом, то тогда все работает и так и так, а если был выделен один итем, а RClk был сделан по другому итему, то возврвщается старый
Здравствуйте, alexxx_ltd, Вы писали:
_>Здравствуйте, Vicont,
_>Все равно возвращается имя первого итема
Ты как делаешь?
проверь:
HTREEITEM ht = m_tree.HitTest(point,TVHT_ONITEM);
CString str = m_tree.GetItemText(ht);
m_tree.SelectItem(ht);
m_tree.SelectDropTaget(ht);
Он выделяет итем в этой точке??
Здравствуйте, Vicont, Вы писали:
V>Здравствуйте, Patalog, Вы писали:
P>Здравствуйте, alexxx_ltd, Вы писали:
P>
P>void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
P>{
V> POINT pt_action = GetMouseMovePoints(); //<-------------
так точнее. Описание в МСДН посмотри
а у 0 точки ты ессно получишь указатель на первый итем...
P> GetCursorPos(&pt_action);
P> CTreeCtrl* tree = reinterpret_cast<CTreeCtrl*>(GetDlgItem(IDC_TREE));
P> ASSERT(tree);
tree->ScreenToClient(&pt_action);
P> HTREEITEM tree_item = tree->HitTest(pt_action);
P> CString item_text = tree->GetItemText(tree_item);
P> *result = 0;
P>}
P>
Здравствуйте, Patalog, Вы писали:
P>Здравствуйте, Vicont, Вы писали:
P>[] P>
P>void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
P>{
V> POINT pt_action = getMousePosition();//<-------------
P> :???: А что ето?
А это я немного попутал (сорри) :)
P>}
P>
[]
V> POINT pt_action = GetMouseMovePoints(); //<------------- V>так точнее. Описание в МСДН посмотри V>а у 0 точки ты ессно получишь указатель на первый итем...
Нихрена не понял.
То getMousePosition, то GetMouseMovePoints...
А чем тебя собст. точность не устраивает?
А про т. 0 — какой item тебе в етой точке нужно получить? Двадцатый что-ли?
ЗЫ Код рабочий. Делает то что требуется. Единственное что можно бы добавить ето
if (tree_item)
CString item_text = tree->GetItemText(tree_item);