如何自绘制listctrl的滚动条,就像xp下的效果。

解决方案 »

  1.   

    自己create owner draw scrollbar
    http://www.codeproject.com/miscctrl/resizescrollbar.asp
    http://www.codeproject.com/useritems/colorizedscrolls.asp
    Colorizing the scroll bars of your windows.
    http://msdn.microsoft.com/msdnmag/issues/01/11/c/
    Understanding CControlView, Changing Scroll Bar Color in MFC Apps
      

  2.   

    怎么通过hook的方式实现呢?ahao(天·狼·星星)
      

  3.   

    windows自带的scrollbar有非常恶心的特点,即使重载了窗口的ncpaint,你点滚动条位置时,它会重画,且不通过ncpaint,所以只能hookapi,有现成的实现:http://www.codeproject.com/dialog/coolscroll.asp,里面的detours例子
      

  4.   

    最简单的界面增强库EasySkin
    作者:倪圣军下载本文示例源代码EasySkin是一个给正在开发的程序或已有程序增强界面效果的工具,只需一个简单的函数调用就可以给你的应用程序加上漂亮的皮肤,包括所有的系统对话框与消息窗。并且可以自己定制皮肤,一切就是这么Easy。  一、实现的功能1、支持所有按钮,包括checkButton,RadioButton,NormalButton,GroupBotton。
    2、支持所有的Combo Box。
    3、支持滚动条。
    4、支持进度条。
    5、支持通用对话窗与MessageBox。
    6、全部支持Hover状态。
    7、支持单文档、多文档、对话窗程序。
    8、支持VC6/7、VB6/7、CB5/6/7。
    9、支持Win95以上操作系统。 二、使用方法只需三个文件:"EasySkin.h","EasySkin.lib","EasySkin.dll" 
    1、添加 "EasySkin.h"文件到工程中
    2、在App类中包含头文件:#include "EasySkin.h"
    3、在App类的 InitInstance()函数中初始化动态库,加载皮肤文件:
    InitEasySkin(NULL,NULL,NULL,NULL);
    说明:程序运行时必须保证 EasySkin.dll 文件存在,否则程序无法运行。 三、自定义皮肤使用说明:EasySkin已经内含一个皮肤文件,制作自己的皮肤文件时只要提取相应的文件到指定地方就可以了,外加一个配置文件即可。大家照着格式改就可以了。
    (1)标题栏背景图:要求有两个,一个是正常状态的,一个是程序失去焦点的,按上下顺序放在一张图中。(top,left,right,bottom)
    (2)标题栏按钮:包括最小化、最大化、恢复、关闭。每种一幅图,包含三或四张小图,分别是Normal、Mouse On、Mouse Down、Disabled(可没有)
    (3)按钮位图:可以不使用。也是五个状态放到一张图中。分别是Normal、Mouse On、Mouse Down、Disabled、Default ;CheckButton、RadioButton分别有六张图
    (4)ScrollBar图最复杂,请按原有格式,所有按钮均为18*18,但滑道使用了三个地方。
    我已经提供了一个配置文件的例子,EasySkin.ini。
    (5)Combo box有四张图,Progress有二张图。
    (全文完)
    http://www.vckbase.com/document/viewdoc.asp?id=713
      

  5.   


    http://www.codeguru.com/listview/SkinList.htmlHow to Skin CListCtrl, Including Scrollbars and Column Headers This article was contributed by Greg Ellis. 
    Environment: VC6 SP5, Windows 2000 SP3, Windows 9x