zoukankan      html  css  js  c++  java
  • MFC滚动条实现要点

    MFC滚动条实现要点

           1、鼠标拖动滚动条从而滚动窗口,需要实现CDialog::OnVScroll()函数。根据传入参数nPos,计算滚动距离。最后再调用ScrollWindow()和SetScrollPos()分别滚动窗口和设置滚动条位置。

           2、鼠标滚轮滚动从而滚动窗口,需要实现OnMouseWheel()函数。根据参数zDelta来计算滚动距离。需要注意的是zDelta是滚轮滚动的距离,它一定是120的倍数,如果鼠标一次滚动达不到120,则会进行累计。只有达到120或以上才会触发OnMouseWheel()。这边还有一个问题需要注意,就是滚轮滚到底部或顶部的时候需要进行特殊处理。

        3、滚动条的滑块大小需要通过SCROLLINFO.nPage进行设置。不过一旦nPage的值大于0,它就会自动影响的最大滑动范围,需要将原先的最大范围nMax加上nPage-1。如果还有问题,请参照MSDN的SCROLLINFO关于nPage的说明。

        4、鼠标滚轮滚动窗口一般需要考虑到系统的鼠标设定选项中的滚轮选项。就是滚轮滚动一次滚多少行的问题。这就需要实时监测系统设置是否改变,当然MFC有提供相应的消息WM_SETTINGCHANGE,我们只要实现这个消息的响应函数。在系统设置改变的时候,根据滚轮选项的值从新设置滚轮滚动行数就行了。

  • 相关阅读:
    bzoj3514 Codechef MARCH14 GERALD07加强版
    差分数列(学习笔记)
    mysql 数据库 replace、regexp的用法
    30岁前男人需要完成的事
    硬盘故障修复十大攻略
    网络工程师考试必备知识
    系统不能正常关机
    忘记XP登入密码的9种解决办法
    Mysql全文搜索match...against的用法
    双绞线网线的连接方式
  • 原文地址:https://www.cnblogs.com/wuhaowinner/p/MFC_ScrollBar.html
Copyright © 2011-2022 走看看