如何重绘编程框的滚动条

yuanjie_xia 2009-05-18 08:27:35
如何重绘编程框、List控件等的滚动条(不能在上层加上一个滚动条遮住原来的滚动条)
...全文
184 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanjie_xia 2009-05-24
  • 打赏
  • 举报
回复
谢谢hurryboylqs
hurryboylqs 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 aaronwang81 的回复:]
我看过coolsb,有问题
1.如果不使用Detour方案,对标准控件带滚动条样式时,没有效果.
2.如果使用Detour方案,我现在还没找到合适的Detour库。

以我的经验来看。用替换消息处理过程的方法来实现是最实用的。
[/Quote]

1、我一般都是用标准带滚动条样式的,用Windows的东西通用,移植好
自己画容易出问题,而且感觉不太好移植
2、 微软不是有个Detour静态库么?

替换消息处理过程当然是要的,接收非客户区消息,处理重画
detour只是hook一些API,这样才知道什么时候该画什么状态
滚动滑块位置等,不Hook的话自己去处理鼠标键盘逻辑就相对复杂了
而且容易处理不当

coolsb是有些小bug的,改过来就好
mynamelj 发的http://search.download.csdn.net/source/1013411 这个例子还是不错的(好像就是改造下coolsb),但是有还是些小bug,一般下不会有什么大问题,不知道他改过来没?







龙凤呈祥焱 2009-05-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hurryboylqs 的回复:]
例子有的,老外写有个coolsb静态库专门画这个的
codeproject上搜下

CSDN也有人做有demo,基本跟coolsb差不多

http://search.download.csdn.net/source/1013411
[/Quote]

我看过coolsb,有问题
1.如果不使用Detour方案,对标准控件带滚动条样式时,没有效果.
2.如果使用Detour方案,我现在还没找到合适的Detour库。

以我的经验来看。用替换消息处理过程的方法来实现是最实用的。
DavidHsing 2009-05-23
  • 打赏
  • 举报
回复
用钩子吧,来处理这些消息
龙凤呈祥焱 2009-05-23
  • 打赏
  • 举报
回复
想知道什么时候该画什么什么是不需要Detour的,通过GetScrollBarInfo和GetScrollInfo两个函数配合就可以了
如果自己程序的界面做过一些美化,再用标准的滚动条,到了某些主题下,就难看了。
其实coolsb不用Detour的方案处理得差不多了。但好像忘了处理鼠标滚轮,和WM_TIMER消息,编辑框居然是通过WM_TIMER消息来实现鼠标滚轮滚动的.有点想不到.....
hurryboylqs 2009-05-22
  • 打赏
  • 举报
回复
例子有的,老外写有个coolsb静态库专门画这个的
codeproject上搜下

CSDN也有人做有demo,基本跟coolsb差不多

http://search.download.csdn.net/source/1013411
yuanjie_xia 2009-05-22
  • 打赏
  • 举报
回复
有没有例子
龙凤呈祥焱 2009-05-19
  • 打赏
  • 举报
回复
要绘制滚动条需要处理的消息很多
如:WM_NCPAINT,所有以WM_NC开始的鼠标消息,(HOVER可以不处理),WM_HSCROLL, WM_VSCROLL,WM_TIMER(编辑框用这个实现鼠标滚轮滚动).WM_KEYDOWN,WM_KEYUP,WM_CHAR,WM_LBUTTONDOWN,
最重要的是在这些消息里面,有些消息你必须发回原消息处理函数处理.然后再自己绘制滚动条.
自己用SPY++的消息记录功能看就很容易明白了。一个消息一个消息的处理。
Carmack Jiang 2009-05-18
  • 打赏
  • 举报
回复
ScrollBar::onpaint()
使用DC
yuanjie_xia 2009-05-18
  • 打赏
  • 举报
回复
绘制滚动条的是什么消息?
龙凤呈祥焱 2009-05-18
  • 打赏
  • 举报
回复
替换窗口消息处理过程,自己处理一些消息。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧