一个treectrl
右击以后要获得选中的文本内容void Addressbook::OnProperty()
{
// TODO: 在此添加命令处理程序代码
Addressbooknamechange  *dlg= new Addressbooknamechange;
dlg->Create(IDD_ADDRESSBOOKPROPERTY);
dlg->ShowWindow(SW_SHOW);
HTREEITEM a=m_treecontril.GetSelectedItem();
dlg->text=m_treecontril.GetItemText(a);}
这段代码什么也没获得 为什么

解决方案 »

  1.   

    BEGIN_MESSAGE_MAP(CWordDlg, CDialog)
    //{{AFX_MSG_MAP(CWordDlg)
    ON_NOTIFY(NM_RCLICK, IDC_TREE1, OnRclickTree1)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()void CWordDlg::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
    HTREEITEM a=m_treecontril.GetSelectedItem();
    dlg->text=m_treecontril.GetItemText(a); *pResult = 0;
    }
      

  2.   

    因为m_treecontril作用域的问题。如果它是主窗口类的成员变量的话,它就无法访问其它窗口类的控件;如果它是新显示的非模式窗口类成员的话,就不是这么用的。把后面两行代码放在非模式窗口类的初始化函数中,然后得到想要的内容(先确保树控件选中一项)。
      

  3.   

    为什么我每次都得到根的text
    而我点击的是叶