m_wndUserTreeCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), &m_wndLeftBar.m_wndTabCtrl, 0);
通过这种方式,创建了一刻树,
但是怎么为这棵叔添加 双击事件呢? class向导里面没有.而我在另外一个对话框里面在设计视图下建了一刻树,然后把相关代码都搬过来,也没用.

解决方案 »

  1.   

    你的m_wndUserTreeCtrl是什么类的对象啊?
    不是有现成的类么?
      

  2.   

    一般是先自定义新类,继承已有的类,比如class CMyListCtrl : public CListCtrl
    再为该类添加自己要的操作.在程序中就可以直接使用了.
      

  3.   

    //而我在另外一个对话框里面在设计视图下建了一刻树,然后把相关代码都搬过来,也没用.
    create 的时候应该指定控件的ID,要不然怎么建立消息映射?
      

  4.   

    CTreeCtrl m_wndUserTreeCtrl;
    是这样定义的.liuyan4794(青牛) 能不能给个示例啊??
      

  5.   

    m_wndUserTreeCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), &m_wndLeftBar.m_wndTabCtrl, 45642);
    我这样了.
    然后 在.h里面 afx_msg void OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult);这样了
    然后又在.cpp里面 ON_NOTIFY(NM_DBLCLK, 45642, OnDblclkTree1) 这样了
    并且建立了 void CMainFrame::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    还有什么问题吗? 是不是 CMainFrame::OnDblclkTree1 这个不对啊>>>>????
      

  6.   

    我在一个SDI程序视图中创建的:
    CWnd*pwnd=AfxGetApp()->GetMainWnd();
    m_wndUserTreeCtrl.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
       | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
       | TVS_DISABLEDRAGDROP,
       CRect(10, 10, 300, 100), this, 0x1005);TVINSERTSTRUCT tvInsert;
    tvInsert.hParent = NULL;
    tvInsert.hInsertAfter = NULL;
    tvInsert.item.mask = TVIF_TEXT;
    tvInsert.item.pszText = _T("United States");
      m_wndUserTreeCtrl.InsertItem(&tvInsert);
    视图的.h里面 afx_msg void OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult);
    视图的.cpp里面END_MESSAGE_MAP()前一行添加 ON_NOTIFY(NM_DBLCLK, 0x1005, OnDblclkTree1)
    程序段添加
    void CTestView::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult)
    {
    *pResult = 0;
    }
     建立消息映射成功