转自:https://blog.csdn.net/zmq5411/article/details/6756189

(1)当用户单击滚动条或者是拖动滑块时,Windows会向窗口过程发送WM_VSCROLL消息(垂直滚动时)或者是WM_HSCROLL消息(水平滚动时)。在滚动条上的任何鼠标动作会产生两条消息:一条是在鼠标键按下时,另一条是在鼠标键松开时。

(2)和其他的消息一样,WM_VSCROLL和WM_HSCROLL消息也都伴随着wParam和lParam消息参数。当滚动条是窗口的一部分时可以忽略lParam参数(该参数只用于滚动条是子窗口时,通常是在对话框中)。

(3)wParam参数被分为低位字和高位字。低位字代表了鼠标在滚动条上的动作。这个值被称为“通知码”,是有一个以SB开头的标识符(SB代表滚动条)定义。定义如下:

#define SB_LINEUP             0

#define SB_LINELEFT         0

#define SB_LINEDOWN            1

#define SB_LINERIGHT             1

#define SB_PAGEUP                 2

#define SB_PAGELEFT            2

#define SB_PAGEDOWN          3

#define SB_PAGERIGHT            3

#define SB_THUMBPOSITION    4

#define SB_THUMBTRACK        5

#define SB_TOP                         6

#define SB_LEFT                      6

#define SB_BOTTOM                  7

#define SB_RIGHT                      7

#define SB_ENDSCROLL            8

(4)如果在滚动条的不同部分按住鼠标键不放,程序可能收到多条滚动条消息。当松开鼠标键时程序会收到一条带有SB_ENDSCROLL通知码的消息。程序通常可以忽略带SB_ENDSCROLL的消息。Windows不会自己改变滑块的位置,应用程序需要调用SetScrollPos函数来改变它。

(5)将鼠标放在滑块上然后按下鼠标键时,可以移动滑块。这将会生成带SB_THUMBTRACK和THUMBPOSITION通知码的滚动条消息。当wParam的低位字是SB_THUMBTRACK时,wParam的高位字是用户拖动滑块的当前位置。该位置处于滚动条范围的最大值和最小值之间。当wParam的低位字是SB_THUMBPOSITION时,wParam的高位字是用户松开鼠标键时滑块的最终位置。对于其他的滚动条动作,wParam的高位字应被忽略。

滚动条范围位置函数(SetScrollRange、SetScrollPos、GetScrollRange、GetScrollPos)

2010-10-26 15:00

滚动条的范围是一对整数,默认情况下,滚动条的范围是0~100。

SetScrollRange(hwnd,iBar,iMin,iMax,bRedraw)这里的iBar参数要么是SB_VERT,要么是SB_HORZ,iMin和iMax分别对应滚动条范围的最小值和最大值,需要Windows根据新的范围来重绘滚动条时将bRedraw设为TRUE.

SetScrollPos(hwnd,iBar,iPos,bRedraw   //指定滑块在滚动条范围中的位置。

GetScrollRange // 获取滚动条当前范围

GetScrollPos //获取滚动条当前位置

【转】滚动条消息(WM_VSCROLL和WM_HSCROLL)相关推荐

  1. 【转】Windows编程之滚动条—滚动条消息

    在用鼠标单击滚动条或者拖动卷动方块时,Windows给窗口消息处理程序发送WM_VSCROLL(供上下移动)和WM_HSCROLL(供左右移动)消息.在滚动条上的每个鼠标动作都至少产生两个消息,一条在 ...

  2. windows鼠标消息

    最开始为windows消息迷惑的时候是一个叫做sendMessage的函数: LRESULT SendMessage(   HWND hWnd,   UINT Msg,   WPARAM wParam ...

  3. Windows编程笔记小结

    1.获取设备描述表的两种方法: 第一种针对WM_PAINT消息,用BeginPaint(hwnd,&ps),EndPaint(hwnd,&ps)来实现,BeginPaint(hwnd, ...

  4. Windows C/C++编程窗口子类化学习

    也许你需要一个特殊的Edit来限制浮点数的输入,但是现有的Edit却并不能完成这项工作,因为它只能够单纯的限制大小写或者纯数字.当你在论坛上求救的时候,某个网友告诉你:"用子类化." ...

  5. win32 20子窗口控件的代码

    汇编代码: ;>>>>>>>>>>>>>>>>>>>>>>>& ...

  6. windows 编程 —— 消息与参数(滚动条、键盘、鼠标)

    目录: 滚动条 键盘 鼠标 滚动条ScrollBar 发送消息:WM_VSCROLL和WM_HSCROLL 参数wParam:wParam消息参数被分为一个低字组和一个高字组.wParam的低字组是一 ...

  7. DELPHI 中 Window 消息大全使用详解

    Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...

  8. 【转】MFC消息映射详解(整理转载)

    消息:主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息.例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息 ...

  9. datagridview滚动条自动滚动_Win32编程基础之滚动条

    (图片来源:游戏<ATRI> 通过使用滚动条,窗口可以显示比它大的文档或图片,用户可以滚动用户区中的数据对象来看到对象超出窗口边界的部分. 如果窗口的用户区比窗口的边框要大,窗口应该使用滚 ...

最新文章

  1. 利用CSS设置页面的垂直居中效果
  2. 巧用事件查看器维护服务器安全
  3. 【深度学习】Coursera的TensorFlow课程练习题精华部分
  4. 程序员如何面对 HR 面试的 40 个问题
  5. Jeewx捷微 , 免费微信公众账号管家系统发布,采用JAVA语言
  6. linux java 1.6 下载地址_linux 安装配置java环境 jdk1.6 jdk-6u45-linux-x64.bin
  7. shell学习笔记(五)
  8. 论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
  9. 新增对象Products 的流程说明
  10. Arduino笔记四电子指南针罗盘HMC5883L
  11. postman文件导入
  12. android(微博 微信 qq) 分享和第三分认证登录的封装
  13. 用SPSS-Modeler分析银行信用风险评分方法
  14. 经典排序算法之:堆排序
  15. docke容器启动后立马退出,状态为 Exit(1)的解决
  16. 正好杠杆炒股短期继续震荡筑底
  17. linux 7 realm,系统运维|Samba 系列(十五):用 SSSD 和 Realm 集成 Ubuntu 到 Samba4 AD DC...
  18. vue 调用移动录像_Vue 莹石摄像头直播视频实例代码
  19. python 解一元二次方程的根
  20. 【思维题】CodeForce 817A Treasure Hunt

热门文章

  1. 【C语言进阶深度学习记录】四 C语言中的类型转换
  2. java中线程池的几种实现方式
  3. MapReduce计数器
  4. jeecg流程梳理学习
  5. 大二下学期软件工程概论总结
  6. 某简单易懂的人脸识别 API 的开发环境搭建和简易教程
  7. Mac远程连接服务器
  8. Web应用中request获取各种获取path或URI,URL的方法
  9. Winodws live writer
  10. __dopostback