void CTreeworkDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
    CString a=_T("");
CTreeCtrl * wnd=(CTreeCtrl*)GetDlgItem(IDC_TREE1);
NM_TREEVIEW*  pNMTreeView=(NM_TREEVIEW*)pNMHDR;
HTREEITEM hSelected = pNMTreeView->itemNew.hItem;
if(hSelected!=NULL)
a=_T(wnd->GetItemText(hSelected));
if(a=="主项")
   AfxMessageBox("a");
else if(a=="项 0")
   AfxMessageBox("a1");

*pResult = 0;
}这样为什么不行;
怎样才能判断我单击的是那一项?
这样才能根据我单击了哪一项而做什么事。

解决方案 »

  1.   

    这几天出现了几个这样的问题。看这个吧。
    http://topic.csdn.net/u/20100112/09/0eea6860-5eb6-42ae-b042-a15f2f90c75c.html
      

  2.   

    HTREEITEM root0=m_mytree.InsertItem(_T("Windows使用痕迹"),1,1,TVI_ROOT,TVI_LAST);
    m_mytree.SetItemData(root0,(DWORD)10);
    HTREEITEM root01=m_mytree.InsertItem(_T("开始菜单最近打开文档"),1,1,root0,TVI_LAST);
    m_mytree.SetItemData(root01,(DWORD)11);
    在插入的时候设置索引
      

  3.   

    get = (DWORD)m_mytree.GetItemData(hItemChild1);
    switch(get)
    {
    case 10:
    case 11:



    }
      

  4.   

    CLICK事件时,TREE控件还没有确定选中哪个节点,用pNMTreeView->itemNew.hItem,以及GetSelectedItem等都得不到选中项。必须用HitTest进行判断。
      

  5.   

    ON_TVN_SELECTCHANGED消息,用过不?搜索下
      

  6.   

    (快乐鹦鹉) ....高人,麻烦解决下我的问题吧!!就是如何删除表头,和表格!!!!我类视图继承于ClistView类!!!
      

  7.   

    其实用Hittest也可以,但我觉得太麻烦了,难道树形控件没有索引?
    用索引多方便啊。
      

  8.   

    voidsky:按你那样的话也可以,但现在我是在单击处理函数里无法获得被单击项的句柄啊。