首页 > 代码库 > 在CTreeCtrl控件点击事件中获取点击的项

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

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