【转】滚动条消息(WM_VSCROLL和WM_HSCROLL)
转自: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)相关推荐
- 【转】Windows编程之滚动条—滚动条消息
在用鼠标单击滚动条或者拖动卷动方块时,Windows给窗口消息处理程序发送WM_VSCROLL(供上下移动)和WM_HSCROLL(供左右移动)消息.在滚动条上的每个鼠标动作都至少产生两个消息,一条在 ...
- windows鼠标消息
最开始为windows消息迷惑的时候是一个叫做sendMessage的函数: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam ...
- Windows编程笔记小结
1.获取设备描述表的两种方法: 第一种针对WM_PAINT消息,用BeginPaint(hwnd,&ps),EndPaint(hwnd,&ps)来实现,BeginPaint(hwnd, ...
- Windows C/C++编程窗口子类化学习
也许你需要一个特殊的Edit来限制浮点数的输入,但是现有的Edit却并不能完成这项工作,因为它只能够单纯的限制大小写或者纯数字.当你在论坛上求救的时候,某个网友告诉你:"用子类化." ...
- win32 20子窗口控件的代码
汇编代码: ;>>>>>>>>>>>>>>>>>>>>>>>& ...
- windows 编程 —— 消息与参数(滚动条、键盘、鼠标)
目录: 滚动条 键盘 鼠标 滚动条ScrollBar 发送消息:WM_VSCROLL和WM_HSCROLL 参数wParam:wParam消息参数被分为一个低字组和一个高字组.wParam的低字组是一 ...
- DELPHI 中 Window 消息大全使用详解
Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...
- 【转】MFC消息映射详解(整理转载)
消息:主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息.例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息 ...
- datagridview滚动条自动滚动_Win32编程基础之滚动条
(图片来源:游戏<ATRI> 通过使用滚动条,窗口可以显示比它大的文档或图片,用户可以滚动用户区中的数据对象来看到对象超出窗口边界的部分. 如果窗口的用户区比窗口的边框要大,窗口应该使用滚 ...
最新文章
- 利用CSS设置页面的垂直居中效果
- 巧用事件查看器维护服务器安全
- 【深度学习】Coursera的TensorFlow课程练习题精华部分
- 程序员如何面对 HR 面试的 40 个问题
- Jeewx捷微 , 免费微信公众账号管家系统发布,采用JAVA语言
- linux java 1.6 下载地址_linux 安装配置java环境 jdk1.6 jdk-6u45-linux-x64.bin
- shell学习笔记(五)
- 论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
- 新增对象Products 的流程说明
- Arduino笔记四电子指南针罗盘HMC5883L
- postman文件导入
- android(微博 微信 qq) 分享和第三分认证登录的封装
- 用SPSS-Modeler分析银行信用风险评分方法
- 经典排序算法之:堆排序
- docke容器启动后立马退出,状态为 Exit(1)的解决
- 正好杠杆炒股短期继续震荡筑底
- linux 7 realm,系统运维|Samba 系列(十五):用 SSSD 和 Realm 集成 Ubuntu 到 Samba4 AD DC...
- vue 调用移动录像_Vue 莹石摄像头直播视频实例代码
- python 解一元二次方程的根
- 【思维题】CodeForce 817A Treasure Hunt