我相应了click消息好像没反应,传过来的结构体根本就是空的,看了msdn说这个click消息只要在tree view控件里面点击就会产生,怪不得没用,那么要用哪个消息?我现在只好用selet changed.还有要让一个item加了子item以后自己张开,应该向他发什么消息?

解决方案 »

  1.   

    SetItemState(item,TVIS_EXPANDED,TVIS_EXPANDED)
      

  2.   

    相应OnClick,使用HitTest测试,得道句柄,后即可判断
      

  3.   

    void CNewLujing::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;   HTREEITEM CurItem=m_TreeCtrl.GetSelectedItem();
    }
      

  4.   


      ScreenToClient(&point);
           // Get the HTREEITEM of the drop target and exit now if it's NULL.
             UINT nFlags;
             HTREEITEM hItem = HitTest (point, &nFlags);
             if (hItem == NULL)
                 return;
     
             // Display an error message if the move is illegal.
             if (hItem == m_hDragItem) {
                 MessageBox (_T ("An item can't be dropped onto itself"));
                 return;
             }
             else if (hItem == GetParentItem (m_hDragItem)) {
                 MessageBox (_T ("An item can't be dropped onto its parent"));
                 return;
             }
             else if (IsChildOf (hItem, m_hDragItem)) {
                 MessageBox (_T ("An item can't be dropped onto one of its " \
                     "children"));
                 return;
             }
     
             // Move the dragged item and its subitems (if any) to the drop point.
             MoveTree (hItem, m_hDragItem);
             m_hDragItem = NULL;