首先看图:
实现方法:
自绘控件。
步骤:
1、#include <afxtempl.h> 我们需要一个CList来管理哪些子项要被画出来,因此我们需要定义 CList<HTREEITEM* ,HTREEITEM*> m_TreeItemList;
2、有了m_TreeItemList,我们需要得到这些子项,有函数void GetList();
3、自绘时,原来的CTreeCtrl之中的函数如HitTest我们要换成自己的HitTestEx();
4、OnNMClick实现展开收缩父节点;
5、OnVScroll之中实现滚动条拖放,先得到需要画的总高度和客户区的总高度;
6、OnPaint中实现自绘,绘图时要注意当前vscrollbar的位置
7、OnNMDblclk、OnNMRclick、OnNMRclick、OnNMRdblclk中*pResult = TRUE;屏蔽展开收缩 用我们自己的方法
部分代码:
源代码:自己在做类似QQ的聊天工具,目前代码正在进行中,如果您想要此部分代码
http://download.youkuaiyun.com/source/3388865
BUG请联系QQ:287909254