// TreeCtrl的单击响应函数
void CCapture2Dlg::OnClickTreeStudents(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
HTREEITEM hItem = m_pStudentTree->GetSelectedItem();
if(hItem != m_hRoot) {
CString csId;
csId.Format("%s", m_pStudentTree->GetItemText(hItem));
MessageBox(csId);
} *pResult = 0;
}
为什么我用GetSelectedItem()方法取得的是单击之前选中的函数呢?
例如:有两个节点,文本分别为 a 和 b,其中a处于选中状态,我点击b后弹出的是a的内容,是焦点离开的item的内容而不是当前焦点item的内容
CPoint pt;
GetCursorPos(&pt);
m_tree.ScreenToClient(&pt);
HTREEITEM hItem = tree.HitTest(pt);
if(NULL != hItem)
{
....
}
也贴个自己的 int i;
UINT hFlag;
CPoint pt;
GetCursorPos(&pt); m_TreeCtrl.ScreenToClient(&pt);
HTREEITEM hItem = m_TreeCtrl.HitTest(pt,&hFlag);
if ((hItem!=NULL)&&(TVHT_ONITEM&hFlag))
{
.......
}