我用下面的方法添加了一些数据    HTREEITEM hRoot,hCur;//树控制项目句柄
    TV_INSERTSTRUCT TCItem;//插入数据项数据结构    TCItem.hParent=TVI_ROOT;//增加根项
    TCItem.hInsertAfter=TVI_LAST;//在最后项之后
    TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;//设屏蔽
    TCItem.item.pszText=_T("数据选择");
    TCItem.item.lParam=0;//序号
    TCItem.item.iImage=0;//正常图标
    TCItem.item.iSelectedImage=1;//选中时图标
    hRoot=m_treeData.InsertItem(&TCItem);//返回根项句柄    for(int i=0;i<4;i++){//增加各厂家
        TCItem.hParent=hRoot;
        TCItem.item.pszText=_T("123");
        TCItem.item.lParam=(i+1)*10;//子项序号
        hCur=m_treeData.InsertItem(&TCItem);
        for(int j=0;j<5;j++){//增加各产品
            TCItem.hParent=hCur;
            TCItem.item.pszText=_T("345");
            TCItem.item.lParam=(i+1)*10+(j+1);//子项序号
            m_treeData.InsertItem(&TCItem);
        }
        m_treeData.Expand(hCur,TVE_EXPAND);//展开树
    }
    m_treeData.Expand(hRoot,TVE_EXPAND);//展开上一级树
我现在想通过点击控件某个节点,在Edit控件显示该节点的值,并可以修改设置,如何得到这个节点的信息呢?谢谢!

解决方案 »

  1.   

    响应 NM_CLICK 消息,然后再 h=m_wndTree.HitTest(pt,&flags);h即为你单击的那个结点剩下的事情,你自己发挥去吧
      

  2.   


    void CFreqlistDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
    {    *pResult = 0;
    }
      

  3.   

    我这样得到的
    void CFreqlistDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
    {
        HTREEITEM   hitem; 
        hitem   =   m_treeData.GetSelectedItem();//得到的是当前的。
        
        if (hitem != NULL)
        { 
            m_treeData.Select(hitem, TVGN_DROPHILITE);
            DWORD dw = m_treeData.GetItemData(hitem);
        }    *pResult = 0;
    }但dw的标志永远不是当前点击的标号,而是上次点击的,这是怎么回事
      

  4.   

    Tvn_Selchanged
    还是映射这个消息比较好吧