afx_msg void OnDoubleClk(NMHDR* pNMHDR, LRESULT* pResult);ON_NOTIFY_REFLECT(NM_DBLCLK, OnDoubleClk)
void CMyTree::OnDoubleClk(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM hti = pNMTreeView->itemNew.hItem;
CString cs = GetItemText(hti);
AfxMessageBox(cs); HTREEITEM hti2 = pNMTreeView->itemOld.hItem;
cs = GetItemText(hti2);
AfxMessageBox(cs); *pResult = 0;
}
用如上方法添加后,可以看到两次消息框,但却得不到树节点的文本,不知问题出在哪里。

解决方案 »

  1.   

    POINT pt;
    ::GetCursorPos(&pt);
    ScreenToClient(&pt);
    HTREEITEM  h = HitTest(pt);
    if(h)
    {
    cs = GetItemText(h);
    AfxMessageBox(cs);
    }
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=447
      

  3.   

    HTREEITEM hti = GetSelectedItem();
    CString cs = GetItemText(hti);
    AfxMessageBox(cs);解决方法很简单,想知道原因在其他消息响应中用HTREEITEM hti = pNMTreeView->itemNew.hItem;
    就可以,为什么在双击响应中不行?
      

  4.   

    HTREEITEM hti = pNMTreeView->itemNew.hItem;
    CString cs = GetItemText(hti);
    AfxMessageBox(cs);hti有可能是NULL,但是你没有判断,就要GetItemText,所以cs肯定也是空的了,
      

  5.   

    没试过双击的。单击我是用
    HTREEITEM hSelectedItem;
    SelectedItem = m_treeCtrl.GetSelectedItem();
    CString strTitle;
    strTitle = m_treeCtrl.GetItemText(hSelectedItem);