关于滚动条的问题,小白求助

南郊居士 2013-01-06 11:34:47
用ScrollWindow函数处理WM_VSCROLL消息,在拖动滚动条的过程中一直有WM_PAINT消息产生,所以在拖动的过程中显示区域是不断刷新的;然而如果使用SetScrollPos和InvalidateRect处理的话就只在鼠标松开的时候才会有WM_PAINT消息。

我想问,使用SetScrollPos和InvalidateRect处理的原理是怎样的,为什么会出现与ScrollWindow不同的效果,SetScrollPos能否实现即时刷新功能。

还有,我是Windows7系统,装的VC6.0,自带的spy++不好用,运行的时候经常出现所有窗口一个接一个未响应的现象,不知道这样的情况是不是普遍的。
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-04-06
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
Eleven 2013-01-06
  • 打赏
  • 举报
回复
MSDN有说明: The area uncovered by ScrollWindow is not repainted, but it is combined into the window's update region. The application eventually receives a WM_PAINT message notifying it that the region must be repainted. To repaint the uncovered area at the same time the scrolling is in action, call the UpdateWindow function immediately after calling ScrollWindow.
南郊居士 2013-01-06
  • 打赏
  • 举报
回复
自己顶一下,没人来啊~~~
sumos 2013-01-06
  • 打赏
  • 举报
回复
SetScrollPos只是修改滚动条。 你用ScrollWindow用法可能有误。 我一般这么用,有一个WS_VSCROLL样式窗口,在它上面创建子窗口,然后scroll这个样式窗口。 而不是:有一个WS_VSCROLL样式窗口,直接Scroll这个窗口,这样会导致绘制的东西错位残留很严重。

15,979

社区成员

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

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