CHTReportList控件类

来源:互联网 发布:编辑图片软件 编辑:程序博客网 时间:2024/05/18 01:35

 

 

HTControlCHTReportList控件类

 

作者

李海涛

日期

2012-10-05

 

文档只是简要说明,在CHTReportList.h中有各接口和变量的详细说明。还可以下载HTControlDemo进行调试。

 http://download.csdn.net/detail/htcontrol/5423895感兴趣的朋友请关注我的资源列表中最新版本

 

 

 

 

 

一 替换CHTReportList滚动条

         VC提供的CListCtrl已经具有相当丰富的功能,而且效率也很好。此类继承自CListCtrl。但是如果包含CListCtrl控件的界面风格与CListCtrl的滚动条很不协调那就糟糕了。此类提供了去掉CListCtrl默认滚动条,替换成自己绘制的滚动条。这样就不会破坏界面整体表现了。

 

 

二 滚动条的任意尺寸

         此类替换的滚动条并不需要与默认的滚动条同样的宽度,可以支持任意的宽度,而且不需要滚动条时候滚动条自动消失,控件的客户区占据此空间,这样界面的布局不会受到影响。

 

 

三 不受操作系统主题的影响

       不同的操作系统主题,各种界面元素的尺寸是不同的,同样的主题也可以调整界面元素的尺寸,但是此类是替换掉默认的滚动条。自绘的滚动条支持任意的尺寸,这就决定了不会受操作系统主题的影响。

 

四 支持CListCtrl背景图显示

         CListCtrl提供了一个设置背景图SetBkImage接口,但是这个接口存在一个问题:窗口内容滚动时,背景图随之滚动,这样就失去了背景图的意义了,搞不懂微软为什么这样设计的(东西方文化差异?其他原因?)CHTReportList类通过重绘可以实现真正意义上的背景图,不会随窗口内容滚动。

 

CListCtrl框选的重绘

         CListCtrl默认的框选是一个虚线框,而且存在问题,有时候在窗体上有残留。默认的虚线框可能与整体界面风格很不一致。CHTReportList重绘了框选,而且不受操作系统主题的影响。

六 在CListCtrl某列添加进度条

         Flashget, 迅雷,电驴等下载工具的下载列表中下载进度都是绘制的进度条。但是CListCtrl是不支持的。CHTReportList提供在任意列绘制进度条的功能。当然,绘制其它控件元素也是可以的(目前是绘制的进度条,不可能一个类把所有的都支持了)。

 

  CListCtrl原有功能全部保留

         我看过一些其它的CListCtrl的继承类,很多丧失了一些CListCtrl原有的功能,比如框选只能在空白区开始,CHTReportList是支持在任意位置开始框选的。CHTReportList保留几乎CListCtrl所有原有的功能。

 

原创粉丝点击