本人想做一个类似QQ显示相关人员列表的,现在想让根节点不使用图标,或者使用比较小的图标,而子节点使用比较大的图标,怎么做??
CTreeCtrl中有SetImagelist()函数设置的一个CImagelist对象,该对象所有的图标具有相同的大小,无法达到我预期的目标。

解决方案 »

  1.   

    直接利用控件功能实现不了
    根节点的高度跟你CImageList中添加的图片高度相同,并且如果你没有为根节点选择图标,系统自动选择ImageList的第一个图片作为根节点的图标,就算你在 CDDS_ITEMPOSTPAINT 中用一个小的图标覆盖住系统(或你自己)为根节点选择的图标,但是树控件的每个项的高度都是一样的,根本实现不了QQ好友列表的效果。
    目前我知道的方法有 1.用ListView 模拟 TreeView 2.自己实现一个可以为不同项设置不同高度的树控件(有难度)。这兄弟自绘的:
    http://topic.csdn.net/u/20100319/14/735b7e56-db17-4f92-b17c-13081cf1685c.html?13695这兄弟模拟的:
    http://topic.csdn.net/u/20100219/22/0955a39f-e2df-49fd-b857-506a2a57816f.html?27323这是我问的:
    http://topic.csdn.net/u/20100327/00/aa861651-5179-4209-a390-0c0764a770e8.html?62514
      

  2.   

    上codeproject上找找吧,那个上面自绘的控件比较多,lz好运
      

  3.   

    CTreeCtrl控件里对应有个有一个结构体,可以自己设的!找找看
      

  4.   

    我以前也做过类似于QQ好友列表的控件。当时也想用树形控件来做,最后放弃了,从CWnd继承,自己绘制。
    因为树形控件的每个Item的高度虽然可以设置,但是都是统一的,而且你提到的图标有大有小,是很难实现的
      

  5.   

    为什么要用CTreeCtrl呢? 用CListBox或者CListCtrl容易实现得多!
      

  6.   

    写过一个,判断选中/移动状态的Item的效率很重要,貌似和QQ差不多,快速移动占CPU 10%左右(双核)。不过扩展性不知道如何。