我要实现一个类似QQ的功能,就是鼠标移动到CtreeCrl的一个节点时,该节点区域改变颜色,就是预选中状态,然后在该节点的右边显示该节点的相关信息,就是显示一个对话框包含节点信息,这个该怎么弄呢

解决方案 »

  1.   

    1 判断鼠标悬浮在哪个节点上
    2 更改此节点的显示
    3 用tooltip或弹出窗口之类显示相关信息你的难点是什么?
      

  2.   

    消息:TVM_HITTEST或:CTreeCtrl::HitTestHTREEITEM HitTest( CPoint pt, UINT* pFlags );
    HTREEITEM HitTest( TVHITTESTINFO* pHitTestInfo );返回值:
    返回位于指定点的tree view项的句柄,如果没有项位于该点,则返回NULL。参数: pt 要测试的点的客户坐标。  
    pFlags 指向一个用来接收有关点击测试的信息的整数的指针。它可以是说明部分中列出的flags成员值中的一个或多个。  
    pHitTestInfo 一个包含点击测试的位置并接收测试结果的信息的TVHITTESTINFO结构的地址。  说明:
    此成员函数用来确定相对于一个tree view控件的客户区的指定点的定位。
    当调用这个函数时,pt参数指定要测试的点的坐标。此函数返回位于指定点的项的句柄,或者如果没有项位于该点则返回NULL。另外,pFlags参数包含了指明指定点的定位的值。
      

  3.   

    鼠标的HitTest会用了,目前的难点是鼠标移动到CtreeCrl的一个节点时,该节点区域改变颜色,就是做到QQ那种效果。tooltip的类还没做实验,考虑的是怎么让他和一个窗口相关