关于滚动条的及时更新问题

yuanweihuayan 2011-12-02 03:24:03
自绘控件的时候肯定免不了要带上滚动条的.但是现在有一个很明显的问题就是,当我拖动滚动条的时候,非得要等到鼠标弹起时才能移动窗体.
我看过一些控件,应该是有方法来弥补这个不足的.不知道是什么方法.希望高手给点思路....
...全文
200 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2012-03-22
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
向立天 2012-02-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yuanweihuayan 的回复:]
东西早就搞定的,但是没有满意的结贴....
[/Quote]可以按无满意结帖
yuanweihuayan 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wyx100 的回复:]

在OnMouseMove里面检查鼠标,如果按下和在滚动条Rect,就执行滚动,可以精确到像素
[/Quote]
不是啦,滚动条本身就有这个消息了.
yuanweihuayan 2011-12-31
  • 打赏
  • 举报
回复
东西早就搞定的,但是没有满意的结贴....
yuanweihuayan 2011-12-06
  • 打赏
  • 举报
回复
问题还没解决,帖子别沉了!!!!
「已注销」 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuanweihuayan 的回复:]
引用 3 楼 wangweixu520 的回复:

在OnMouseMove里面检查鼠标,如果按下和在滚动条Rect,就执行滚动,可以精确到像素

照你这样说的话就会有一个问题就是:你不知道当前用户是想向上滚动还是向下滚动.
还有就是,我在程序里面不是使用ScrollWindow这个函数来完成滚动的.
[/Quote]

在鼠标点击移动时记下当前坐标
在鼠标移动的时候,判断Y左边与之前的坐标

或者在鼠标移动里面存2个坐标 当前的 和之前 然后比较
yuanweihuayan 2011-12-05
  • 打赏
  • 举报
回复
别沉了.顶起啊!!!!!!!!!
yuanweihuayan 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 likang0712 的回复:]

引用 4 楼 yuanweihuayan 的回复:
引用 3 楼 wangweixu520 的回复:

在OnMouseMove里面检查鼠标,如果按下和在滚动条Rect,就执行滚动,可以精确到像素

照你这样说的话就会有一个问题就是:你不知道当前用户是想向上滚动还是向下滚动.
还有就是,我在程序里面不是使用ScrollWindow这个函数来完成滚动的.


在鼠标点击移动时记下……
[/Quote]
谢谢你的回答,但是这样貌似不可取.
首先要截获的就是鼠标单击在滚动条时的消息,如果用ON_WM_NCHITTEST.就会带来一些列的问题.
1. 鼠标按下消息.如果你在ON_WM_LBUTTONDOWN里面处理,但是滚动条无法在这个消息里面响应
2. 就算是能解决第一个问题,那么我改如何发送消息.使得界面来根据鼠标的移动状态来OnPaint?
更何况,我看了别人写的一个控件,它也没这样复杂.但是我就是不知道它为什么可以实时移动.
而且我认为之所以产生这个问题,原因就是windows并没有在我调用UpdateWindow时刷新界面
yuanweihuayan 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liujie250079934 的回复:]

你是在OnVScroll里进行操作的么。。
[/Quote]
嗯?你还有别的方法响应滚动条消息吗?
yuanweihuayan 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangweixu520 的回复:]

在OnMouseMove里面检查鼠标,如果按下和在滚动条Rect,就执行滚动,可以精确到像素
[/Quote]
照你这样说的话就会有一个问题就是:你不知道当前用户是想向上滚动还是向下滚动.
还有就是,我在程序里面不是使用ScrollWindow这个函数来完成滚动的.
wangweixu520 2011-12-02
  • 打赏
  • 举报
回复
在OnMouseMove里面检查鼠标,如果按下和在滚动条Rect,就执行滚动,可以精确到像素
liujie250079934 2011-12-02
  • 打赏
  • 举报
回复
你是在OnVScroll里进行操作的么。。
xiaonu1 2011-12-02
  • 打赏
  • 举报
回复

15,980

社区成员

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

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