处理右键事件时用SelectItem选中不就行了?

解决方案 »

  1.   

    在OnRclickTree中
    设置欲选中的项
    SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED );
      

  2.   

    但是SelectItem中的hItem参数怎么得到那?
      

  3.   

    SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED );
      

  4.   

    to small_wei(small) :你指的OnRclickTree只是NM_RCLICK的响应函数吗?可是这个函数是右击整个tree都能响应的。还有就是SetItemState(nItem, LVIS_SELECTED, LVIS_SELECTED );中的nItem怎么得到,用GetSelectedItem()不可以的!~
      

  5.   

    右键事件中HTREEITEM SelItem;CTreeCtrl& cThisTree = GetTreeCtrl();
    SelItem = cThisTree.HitTest( point,  &nFlags );//获得当前节点
    cThisTree.SelectItem(SelItem) ;                //选中当前节点
      

  6.   

    为其父窗口添加WM_CONTEXTMENU处理:
    void CcmdHelpDlg::OnContextMenu(CWnd* pWnd, CPoint point)
    {
    // TODO: Add your message handler code here
    if(pWnd->m_hWnd == m_tree.m_hWnd)
    {
    CPoint pt = point;
    m_tree.ScreenToClient(&pt);
    UINT uFlags;
    HTREEITEM hItem = m_tree.HitTest(pt, &uFlags);
    if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
    {
    m_tree.SelectItem(hItem);
    return;
    }
    }
    }