在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.