今天做vc tree控件单击事件响应,
HTREEITEM treeSelectedItem = m_ctlTreeWorker.GetSelectedItem();
CString strSelectedItem = m_ctlTreeWorker.GetItemText(treeSelectedItem);
发现总是延迟显示,即:点击后一个节点获得的是前一个节点的句柄,想不通为什么
后来搜索测试发现这个方法可以使用:
CPoint cp;
GetCursorPos(&cp);
m_ctlTreeWorker.ScreenToClient(&cp); //m_ctlTreeWorker是CTreeCtrl控件变量。
HTREEITEM treeItem = m_ctlTreeWorker.HitTest(cp,NULL); //获取当前鼠标右键单击的位置下的item
CString str = m_ctlTreeWorker.GetItemText( treeItem );
MessageBox(str);
可以使用这个方法解决单击和双击事件。