简谈mfc滚动条实现

   给窗口加滚动条是经常遇到的事情,也不是一件困难的事情!

   一般来说,滚动条要实现两方面的功能:

   1、滚动条范围、滑块位置和长度正确的变化;

   2、窗口随滚动条的合理变化;

   为达到上述两方面的功能,需要响应下面三个消息:

   1、OnVScroll和OnHScroll:需要正确设置滑块的位置nPos(SetScrollPos),合理的移动窗口(ScrollWindow);

   2、OnSize:需要正确设置滚动条范围nMin、nMax以及每页nPage(SetScrollInfo),这里不设置nPos可以保证窗口缩放前后窗口顶端显示内容不变;

   3、OnPaint:实现窗口重绘,这一步容易造成窗口的闪烁,尽可能提高重绘的效率,为了保持当前内容不变需要调用SetWindowOrg设置窗口原点为当前滑块位置。

   为了正确设置滚动条,还需要在创建的时候设置需要显示内容的总大小(内容的在逻辑窗口的总长度)、每次点击方向箭头移动量等几个常量。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值