就是像那种灰化的效果,disable某一项,让他不能被selected

解决方案 »

  1.   

    我原来做的一个是三态树来实现这个功能的,也就是树要有checkbox。如果没有checkbox的话,那可能就要重绘了。
      

  2.   

    给项目状态state自定义一个属性,重载鼠标左键消息,在里面判断这个节点项目是否为禁止状态,然后设置是否选择这个节点。
    #define CUST_DISABLE (值你自已定义)void CMyTreeCtrl::OnMouseDown(UINT uFlags, CPoint point)
    {   
       UINT nFlags;
       HTREEITEM hItem = HitTest(point, &nFlags);
       if((hItem != NULL) && nFlags & TVHT_ONITEM)
       {
           UINT nState = GetItemState(hItem, TVIF_STATE);
           if(nState & CUST_DISABLE)
           {
              // 不选择
           }
           else
           {
               SelectItem(hItem);
           }
       }
       //CTreeCTrl::OnMouseDown(uFlags, point);
    }
      

  3.   

    对 不让他选中 现在有办法了 
    在SelectChanging的时候 返回1也可以不让他选中,但是怎么改变颜色还不太清楚唉