在CTreeCtrl控件点击事件中获取点击的项

网上搜了一下,有两种方法:

1、使用GetSelectedItem()

HTREEITEM hItem = m_treeCtrl.GetSelectedItem();
CString strText = m_treeCtrl.GetItemText(hItem);
MessageBox(strText);

2、使用HitTest()

CPoint pt;
GetCursorPos(&pt);
m_treeCtrl.ScreenToClient(&pt);
UINT uFlags;
HTREEITEM hItem = m_treeCtrl.HitTest(pt, &uFlags);
CString strText = m_treeCtrl.GetItemText(hItem);
MessageBox(strText);

总结:方法没有达到要求,因为在点击事件使用GetSelectedItem()获取的项是CTreeCtrl控件选中的项,并不一定是点击的项,因为它只会返回上次点击的项,因为上次点击的项在这次事件中是出于选中状态的,因此使用方法2.

posted @ 2014-12-04 00:27  冷冰若水  阅读(1084)  评论(0编辑  收藏  举报