listview 滚动条 自绘

本文介绍了在CListCtrl控件中实现自绘滚动条的难点和解决方案。首先,隐藏CListCtrl自带滚动条需要利用FlatSB_EnableScrollBar API函数,而非简单的修改风格。接着,自绘滚动条涉及到SCROLLINFO结构体的使用,理解其参数含义至关重要。文章还讨论了SB_THUMBTRACK和SB_THUMBPOSITION消息的特殊处理,以及滚动条绘制时的窗口风格设置问题,如添加WS_CLIPCHILDREN和WS_CLIPSIBLINGS风格以确保正确绘制。

转自:http://blog.sina.com.cn/s/blog_48f93b530100eg3z.html

CListCtrl控件功能扩展总结(三)

(2009-08-21 21:31:15)

    前面写过两篇CListCtrl控件的开发总结,最近在开发和应用当中又发现了几个比较有趣的问题,主要是关于自绘滚动条的。从我的感觉来说,做CListCtrl控件(我们一直在讨论report风格)的自绘滚动条是比较复杂的,因为里边有很多特殊的地方,很可能会让你备受挫折。
   
    先说一下实现自绘滚动条的思路。首先要隐藏CListCtrl自带的滚动条,如果你简单的认为加上LVS_NOSCROLL风格就能搞定的话,你一定会大失所望,具体我们后面会讲到。然后就是要封装自己的滚动条控件了,考虑到有竖直滚动条和水平滚动条两种,我们的封装可能还要费一番周折。除了要响应消息自绘外,滚动条控件还要向parent控件(即CListCtrl)发送相应的WM_VSCROLL和WM_HSCROLL消息及消息参数。
最后,CListCtrl控件要响应这两个消息并进行相应处理,这个过程需要清楚地理解SCROLLINFO结构体中各个变量含义并进行应用,另外就是处理一些UI绘制和刷新上的麻烦。
    好了,下面我们就重点总结一下上面过程中会遇到的难题,并给出解决方法。

 

    一、隐藏CListCtrl自带滚动条
    CWnd类有一系列的关于Scroll的函数,感觉好像有

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值