Do What You think !!

 

一个自绘的树类

树的自绘类很多,很方法都是在onpaint()函数中完成自绘。我也看了不少例子,可是与我想要的实现方法思路不同。我都不知道自己为什么非想 在 NM_CUSTOMDRAW 这个消息中完成自绘, 可能是一开始受msdn的影响,msdn上把像这类控件(ListCtrl,Tree等等)的自绘分成几个步骤。我觉得条理清楚而且又符合一般的逻辑,所以。。。好了,不废话了,下面介绍我今天要写的树类。下面我讲讲这个类的实现过程:
 
   首先讲讲这个类具有的功能吧。能够设置背景色,设置节点连线颜色,设置节点颜色和图表(当然你还可以根据自己需要设置节点特征,比如字体),设置节点开关按钮,大概就这么多了;

   我们现在从CTreeCtl派生自己的类,然后增加一些成员变量,其中最重要的是CMap <void*, void*, ItemDrawData, ItemDrawData&> m_mapItemDrawData; 其中ItemDrawData 装载了每个节点自绘信息:
struct ItemDrawData {
  COLORREF color;
  HICON  hIcon;   //每个节点都可以设置图标
 };
   由于上船空间限制, 我就上传类的源码。使用此类,只要把.h和.cpp文件包括到你工程中,然后把头文件Include就可以了。下面是运行图:  这是在ppc上运行的情况,在vc 6中应该也能用。


/Files/kuronca/CColorTree.rar

posted on 2007-04-25 18:04 零宇 阅读(794) 评论(1)  编辑 收藏 引用 所属分类: C++类

评论

# re: 一个自绘的树类 2007-12-26 10:50 lihya

能用c++写程序的都是高手
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(4)

随笔档案(8)

文章分类(4)

文章档案(4)

Windows Mobile 论坛

道中人

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜