【转】滚动条消息(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 //获取滚动条当前位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】CMMI环境下,该如何实施Agile?

“CMMI与敏捷之间是否有什么样的关系?是矛盾的?还是可融合的?”“在CMMI环境下如何实施敏捷?”自从“敏捷”诞生以后,此类话题就此起彼伏,从未停止。前几日,在AgileChina的讨论组中,…

透析WINCE的控制面板

WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。Windows CE作业系统是Windows家族中最新的成员…

oracle 游标 904,如何解决Oracle数据库游标连接超出问题

如何解决Oracle数据库游标连接超出问题发布时间:2020-07-21 10:57:35来源:亿速云阅读:103作者:小猪这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容清晰明了,对此有兴趣的小伙伴可以学习一下…

【转】windows程序设计(14):鼠标消息详解

关于鼠标的一些细节知识: 通常,我们发消息时,都是对一个特定的窗口,但是对于鼠标消息却不然:只要鼠标跨越窗口或者在某窗口中按下鼠标按键,那么窗口消息处理程序就会收到鼠标消息,而不管该窗口…

用多媒体库 Bass.dll 播放 mp3 [15] - 设置与获取播放速度

本例效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls;typeTForm1 class(TForm)OpenDialog1: TOpenDialog;Button1: TButton;Button2: TButton;Button3: TButton;TrackBar1:…

详解WINCE的控制面板

曾经在我的一篇《控制面板的创建》中介绍过WinCE控制面板的结构,不过由于那篇文章其目的只在于控制面板如何调用EXE程序,故对控制面板也仅是泛泛而谈.不过在这篇文章中,我们将对WinCE的使用方法来个整体的详解. 1.控制面板的结构 控制面板其实也是个动态链接库…

【转】设置Win32窗口背景颜色

窗口类结构体中,有一个窗口背景成员,hbrBackground。它是一个画刷句柄类型。在Windows中有各种各样的句柄,比如窗口句柄、实例句柄,画刷句柄,文件句柄等等,他们都是句柄类型,只是每一种句柄都和…

oracle中plsql块的结构,oracle plsql的结构

变量声明部分(没有变量可以不写declare)begin执行部分exception异常处理部分end*:declare 和 exception部分是可选的(1)PL/sql中变量的定义格式1变量名 变量类型 【约束】 default 默认值格式2变量名 变量类型 【约束】【:初始值】(2)一个简单的PL/sql块…

【转】Dicom文件解析!!!!!!

转自:https://blog.csdn.net/leaf6094189/article/details/8510325 Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较…

VS2008 JS脚本调试总是调试旧代码 真不知道怎么回事?谁能帮帮我呀!

如图,[dynamic]标记的是调试的元文件 xml1.htm[dynamic]和xml.js[dynamic] 我更改后的文件是xml1.htm和xml.js,见图1 2 调试的文件有debugger 更改后的文件我把debugger注了 js脚本中我把变量给改了见3 4 ,所以在浏览新的xml1.htm时,竟然报对象找不到,真实受不了了!!! 为什么我…

蜂窝注册表和永久存储

WindowsCE有两种注册表,一种是基于RAM的,一种是基于蜂窝的注册表;WindowsCE会默认使用前者。如果是使用前者,PB在编译的时候会先把common.reg、platform.reg、project.reg及所有的.reg文件的内容合并到reginit.ini文件&#xff0c…

修改oracle默认日期,Oracle 修改默认日期格式

1、Oracle的日期格式Oracle数据缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。例如,使用us7ascii字符集(或者是其他的英语字符集)时,缺省的时间格式显示为:28-Jan-2003&#xf…

【转】C#开发PACS医学影像处理系统(一):开发背景和功能预览

转自:https://www.cnblogs.com/Uncle-Joker/p/13646949.html 本系列文章将从以下模块和大家分享和讨论使用C#开发医学软件PACS和RIS系统, 国内相关资料比较少,也借此机会丰富一下医学软件开发生态,讨论技术难点,希望…

《WF编程》系列之30 - 基本活动:错误处理

《WF编程》系列之30 - 基本活动:错误处理 4.3 错误处理 Fault,故障,现在官方已经将其翻译为错误,那么以后的随笔中我也就采用官方的翻译吧. 错误处理也属于流程控制的一部分,这一节我来介绍一下有关错误处理的活动.错误是指在工作流执行期间发生的异常.我们可以使用错误处理程…

wince 自动启动程序设置

这是我在做wince6的时候为设置自启动而寻找的方法。我发现公司定的这个设备在“Program Files”和windows文件夹下放置的东西在机子重启之后就什么都没有了。我只有使用注册表测试,发现重启后还存在,因此我用注册表方式设置了自启动。而在这个过程中&…

oracle错误27101,ORA-27101ORA-01034错误解决

Oracle已经启动,连接sqlplus后,进行查询,出现下面错误ORA-01034: ORACLE not availableORA-27101: shared memory realm doesOracle已经启动,连接sqlplus后,进行查询,出现下面错误ORA-01034: ORACLE not av…

NOD32升级ID获取器For流星无语更新了

NOD32升级ID获取器For流星无语更新了一下,现在可以直接把用户名密码写入注册表了,连复制/粘贴操作都可以免了...转载于:https://www.cnblogs.com/lxwy/archive/2008/09/05/4420722.html

string也可以很精彩

// //TITLE: // string也可以很精彩 //AUTHOR: // norains //DATE: // Moday 03-November-2008 //Environment: // NONE // 对于习惯于MFC架构的朋友来说,估计直接采用API方式写代码最痛苦的莫过于没有CString。其实,在STL里面&#xff…

oracle存储过程行转列,oracle 存储过程-动态行转列,解决。

create or replace package body pro_test isprocedure Alarm_ContentsByTime(p_StartTime varchar2,----开始时间p_EndTime varchar2,----结束时间io_cursorinOUT out_cursor)iscursor cursor_1 IS--获取 列用于循环。select DISTINCT t.ps_productorcode code, t.PS_PRODUCTO…

【转】【C#】使用fo-dicom完成BMP,JPG,PNG图片转换为DICOM文件

转自:https://developer.aliyun.com/article/672065 最近研究了一下DICOM和BMP文件转换的问题,也是很头大。度娘了很久,也在CSDN等论坛看到一些断断续续的文件,最主要的是代码只是片断,不是完整的实现。头大了。 首先…