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

守給你的承諾、 提交于 2019-11-28 14:59:24

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

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!