【原创】纯VC++ 实现不等高CTreeCtrl(可用于好友列表)

来源:互联网 发布:爱奇艺扫号器一手数据 编辑:程序博客网 时间:2024/06/07 02:15

首先看图:demo

                               收缩“我的大学”

实现方法:

      自绘控件。

步骤:

      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.csdn.net/source/3388865

      BUG请联系QQ:287909254

      邮箱: youjinpeng_hdu@163.com

 

原创粉丝点击