如何重绘编程框的滚动条 如何重绘编程框、List控件等的滚动条(不能在上层加上一个滚动条遮住原来的滚动条) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要绘制滚动条需要处理的消息很多如:WM_NCPAINT,所有以WM_NC开始的鼠标消息,(HOVER可以不处理),WM_HSCROLL, WM_VSCROLL,WM_TIMER(编辑框用这个实现鼠标滚轮滚动).WM_KEYDOWN,WM_KEYUP,WM_CHAR,WM_LBUTTONDOWN,最重要的是在这些消息里面,有些消息你必须发回原消息处理函数处理.然后再自己绘制滚动条.自己用SPY++的消息记录功能看就很容易明白了。一个消息一个消息的处理。 例子有的,老外写有个coolsb静态库专门画这个的codeproject上搜下CSDN也有人做有demo,基本跟coolsb差不多http://search.download.csdn.net/source/1013411 我看过coolsb,有问题1.如果不使用Detour方案,对标准控件带滚动条样式时,没有效果.2.如果使用Detour方案,我现在还没找到合适的Detour库。以我的经验来看。用替换消息处理过程的方法来实现是最实用的。 1、我一般都是用标准带滚动条样式的,用Windows的东西通用,移植好自己画容易出问题,而且感觉不太好移植2、 微软不是有个Detour静态库么?替换消息处理过程当然是要的,接收非客户区消息,处理重画detour只是hook一些API,这样才知道什么时候该画什么状态滚动滑块位置等,不Hook的话自己去处理鼠标键盘逻辑就相对复杂了而且容易处理不当coolsb是有些小bug的,改过来就好mynamelj 发的http://search.download.csdn.net/source/1013411 这个例子还是不错的(好像就是改造下coolsb),但是有还是些小bug,一般下不会有什么大问题,不知道他改过来没? 想知道什么时候该画什么什么是不需要Detour的,通过GetScrollBarInfo和GetScrollInfo两个函数配合就可以了如果自己程序的界面做过一些美化,再用标准的滚动条,到了某些主题下,就难看了。其实coolsb不用Detour的方案处理得差不多了。但好像忘了处理鼠标滚轮,和WM_TIMER消息,编辑框居然是通过WM_TIMER消息来实现鼠标滚轮滚动的.有点想不到..... vc++ 向SQL中写入数据时异常 关于透明位图显示,对BitBlt不甚理解的地方。 请教:生成正式软件 在winlogon桌面可以用ShellExecute打开一个文件,并在default桌面显示出界面来吗? 别人编好的程序,在我这里却出现了Runtime Error!, 文件写入问题 怎样把一个工程中的对话框资源完全的复制到另一个工程中。 关于在自定义类中使用timer的问题(急!!!!!) 关于无模式对话框的创建 activex 中的消息相应顺序和messagebox问题 推荐下,数据程序用什么控件好呢? 疑问?
如:WM_NCPAINT,所有以WM_NC开始的鼠标消息,(HOVER可以不处理),WM_HSCROLL, WM_VSCROLL,WM_TIMER(编辑框用这个实现鼠标滚轮滚动).WM_KEYDOWN,WM_KEYUP,WM_CHAR,WM_LBUTTONDOWN,
最重要的是在这些消息里面,有些消息你必须发回原消息处理函数处理.然后再自己绘制滚动条.
自己用SPY++的消息记录功能看就很容易明白了。一个消息一个消息的处理。
codeproject上搜下CSDN也有人做有demo,基本跟coolsb差不多http://search.download.csdn.net/source/1013411
我看过coolsb,有问题
1.如果不使用Detour方案,对标准控件带滚动条样式时,没有效果.
2.如果使用Detour方案,我现在还没找到合适的Detour库。以我的经验来看。用替换消息处理过程的方法来实现是最实用的。
1、我一般都是用标准带滚动条样式的,用Windows的东西通用,移植好
自己画容易出问题,而且感觉不太好移植
2、 微软不是有个Detour静态库么?替换消息处理过程当然是要的,接收非客户区消息,处理重画
detour只是hook一些API,这样才知道什么时候该画什么状态
滚动滑块位置等,不Hook的话自己去处理鼠标键盘逻辑就相对复杂了
而且容易处理不当coolsb是有些小bug的,改过来就好
mynamelj 发的http://search.download.csdn.net/source/1013411 这个例子还是不错的(好像就是改造下coolsb),但是有还是些小bug,一般下不会有什么大问题,不知道他改过来没?
如果自己程序的界面做过一些美化,再用标准的滚动条,到了某些主题下,就难看了。
其实coolsb不用Detour的方案处理得差不多了。但好像忘了处理鼠标滚轮,和WM_TIMER消息,编辑框居然是通过WM_TIMER消息来实现鼠标滚轮滚动的.有点想不到.....