我在程序中响应NM_CLICK的消息,我想得到我所选择的条目的文本,程序是这样的
HTREEITEM select = m_ctrltree.getselectitem();
CString str = m_ctrltree.getitemtext(select);
为什么第一次点击的时候select的值时0,而以后点击才有反映,我在TVN_SELCHANGE中响应却后用,这是为什么?
小弟十分着急!!!

解决方案 »

  1.   

    你就是要得到那个ITEM直,然后做处理吧?
    好象不是这样做的。
      

  2.   

    当你点击一次TREECTRL时,其先收到NM_CLICKED消息,然后是TVN_SELCHANGING,再后是TVN_SELCHANGED消息.也就是说,当你用点击的方法处理时,这时TREECTRL中的SELECTED ITME还没有变化呢!
    你如果用GetSelectedItem()想来取你要的这个ITEM的话,一定取到的是前一个选中的ITEM,所以当你click时输出的文本内容为前一个item的内容.
      

  3.   

    留个EMAIL,我可以发个给你。
      

  4.   

    你可以用别的啊?为什么必须用Click的方法啊?