CTreeCtrl
От: alexxx_ltd  
Дата: 14.04.03 06:38
Оценка:
Глупый вопрос..
Как получить имя итема по RClk в treectrl

Код

HTREEITEM hCurSel = m_tree.GetSelectedItem() ;
CString Str = m_tree.GetItemText(hCurSel);

Str всегда равен имени первого итема
Re: CTreeCtrl
От: Vicont Россия  
Дата: 14.04.03 06:57
Оценка:
Здравствуйте, 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);
Re[2]: CTreeCtrl
От: alexxx_ltd  
Дата: 14.04.03 09:19
Оценка:
Здравствуйте, Vicont,

Все равно возвращается имя первого итема
Re[2]: CTreeCtrl
От: alexxx_ltd  
Дата: 14.04.03 09:23
Оценка:
Суть в том, что если сначала выделить итем, скажем левым кликом, то тогда все работает и так и так, а если был выделен один итем, а RClk был сделан по другому итему, то возврвщается старый
Re[3]: CTreeCtrl
От: Vicont Россия  
Дата: 14.04.03 09:33
Оценка:
Здравствуйте, 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);
Он выделяет итем в этой точке??
Re[3]: CTreeCtrl
От: Patalog Россия  
Дата: 14.04.03 09:58
Оценка:
Здравствуйте, alexxx_ltd, Вы писали:

void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
{
    POINT pt_action = { 0 };
    GetCursorPos(&pt_action);

    CTreeCtrl* tree = reinterpret_cast<CTreeCtrl*>(GetDlgItem(IDC_TREE));
    ASSERT(tree);

    tree->ScreenToClient(&pt_action);
    HTREEITEM tree_item = tree->HitTest(pt_action);
    CString item_text = tree->GetItemText(tree_item);

    *result = 0;
}
Почетный кавалер ордена Совка.
Re[4]: CTreeCtrl
От: Vicont Россия  
Дата: 14.04.03 10:04
Оценка:
Здравствуйте, Patalog, Вы писали:

P>Здравствуйте, alexxx_ltd, Вы писали:


P>
P>void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
P>{

    POINT pt_action = getMousePosition(); //<-------------

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>
Re[5]: CTreeCtrl
От: Vicont Россия  
Дата: 14.04.03 10:08
Оценка:
Здравствуйте, 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>
Re[5]: CTreeCtrl
От: Patalog Россия  
Дата: 14.04.03 10:09
Оценка:
Здравствуйте, Vicont, Вы писали:

[]
P>
P>void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
P>{

V>    POINT pt_action = getMousePosition(); //<-------------

 :???: А что ето?

P>}
P>
Почетный кавалер ордена Совка.
Re[6]: CTreeCtrl
От: Vicont Россия  
Дата: 14.04.03 10:18
Оценка:
Здравствуйте, Patalog, Вы писали:

P>Здравствуйте, Vicont, Вы писали:


P>[]

P>
P>void CTestView::OnRClick(NMHDR* nmhdr, LRESULT* result)
P>{

V>    POINT pt_action = getMousePosition(); //<-------------

P> :???: А что ето?

А это я немного попутал (сорри) :)

P>}
P>
Re[4]: CTreeCtrl
От: alexxx_ltd  
Дата: 14.04.03 10:19
Оценка:
Все работает. Спасибо
Re[6]: CTreeCtrl
От: Patalog Россия  
Дата: 14.04.03 10:25
Оценка:
Здравствуйте, Vicont, Вы писали:

[]

V> POINT pt_action = GetMouseMovePoints(); //<-------------

V>так точнее. Описание в МСДН посмотри
V>а у 0 точки ты ессно получишь указатель на первый итем...

Нихрена не понял.
То getMousePosition, то GetMouseMovePoints...
А чем тебя собст. точность не устраивает?
А про т. 0 — какой item тебе в етой точке нужно получить? Двадцатый что-ли?

ЗЫ Код рабочий. Делает то что требуется. Единственное что можно бы добавить ето
if (tree_item)
    CString item_text = tree->GetItemText(tree_item);

Какие претензии то?
Почетный кавалер ордена Совка.
Re[7]: CTreeCtrl
От: BlackHeretic Израиль  
Дата: 14.04.03 12:34
Оценка:
Здравствуйте, Patalog, Вы писали:

P>ЗЫ Код рабочий. Делает то что требуется. Единственное что можно бы добавить ето

P>
P>if (tree_item)
P>    CString item_text = tree->GetItemText(tree_item);
P>

P>Какие претензии то?

Претензий никаких — токи это порабочее будет

CString item_text;
if (tree_item)
    item_text = tree->GetItemText(tree_item);
ICQ 156156278
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.