c语言gui编程滚动条,三、Windows编程之滚动条—滚动条的范围和位置-程序员宅基地

技术标签: c语言gui编程滚动条  

每个滚动条均有一个相关的「范围」(这是一对整数,分别代表最小值和最大值)和「位置」(它是卷动方块在此范围内的位置)。当卷动方块在卷动列的顶部(或左部)时,卷动方块的位置是范围的最小值;在卷动列的底部(或右部)时,卷动方块的位置是范围的最大值。

在内定情况下,滚动条的范围是从0(顶部或左部)至100(底部或右部),但将范围改变为更方便于程序的数值也是很容易的:

SetScrollRange (hwnd, iBar, iMin, iMax, bRedraw) ;

参数iBar为SB_VERT或者SB_HORZ,iMin和iMax分别是范围的最小值和最大值。如果想要Windows根据新范围重画滚动条,则设置bRedraw为TRUE(如果在呼叫SetScrollRange后,呼叫了影响滚动条位置的其它函数,则应该将bRedraw设定为FALSE以避免过多的重画)。

卷动方块的位置总是离散的整数值。例如,范围为0至4的滚动条具有5个卷动方块位置,如图4-6所示。

fab7328dbbfe0adf8ed5f3b1c51299f3.png

您可以使用SetScrollPos在滚动条范围内设置新的卷动方块位置:

SetScrollPos (hwnd, iBar, iPos, bRedraw) ;

参数iPos是新位置,它必须在iMin至iMax的范围内。Windows提供了类似的函数(GetScrollRange和GetScrollPos)来取得滚动条的目前范围和位置。

在程序内使用滚动条时,程序写作者与Windows共同负责维护滚动条以及更新卷动方块的位置。下面是Windows对滚动条的处理:

处理所有滚动条鼠标事件

当使用者在滚动条内单击鼠标时,提供一种「反相显示」的闪烁

当使用者在滚动条内拖动卷动方块时,移动卷动方块

为包含滚动条窗口的窗口消息处理程序发送滚动条消息

以下是程序写作者应该完成的工作:

初始化滚动条的范围和位置

处理窗口消息处理程序的滚动条消息

更新滚动条内卷动方块的位置

更改显示区域的内容以响应对滚动条的更改

像生活中的大多数事情一样,在我们看一些程序代码时这些会显得更加有意义。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36073697/article/details/117071735

智能推荐

猫头虎分享已解决Bug || Error: ImagePullBackOff (K8s) ‍-程序员宅基地

文章浏览阅读928次,点赞19次,收藏21次。嘿,云原生小伙伴们,猫头虎博主在此!今天我们要聊聊Kubernetes(K8s)中一个常见但头疼的问题 ——错误。这个小怪兽常常在我们尝试部署容器时悄悄出现,让我们的应用启动失败。在这篇博客里,我会用我那猫头虎般敏锐的眼光,深入挖掘这个问题的根源,展示如何一步步地解决它,并提供避免未来类似问题的策略。准备好了吗?让我们开始吧!问题原因解决步骤网络问题检查网络连接认证错误核实凭证信息镜像名/标签错误确认镜像信息资源限制检查资源配额处理。_error: imagepullbackoff

【贪心法求解最小生成树之Kruskal算法详细分析】---Greedy Algorithm for MST_greedy mst demo-程序员宅基地

文章浏览阅读1.4k次。初衷:最近在看算法相关的东西,看到贪心法解决mst的问题,可惜树上讲解的不是很清新,到网上找了很多资料讲解的也不透彻只是随便带过就草草了事、这几天抽空看了下,总算基本思路理清楚了主要还是得感谢强大的google,帮我找到一个很好的英文资料。(下面有链接,有兴趣的同学可以看看)理顺了思路,就和大家分享下~希望对学习贪心法的同学会有所帮助。 这篇博客的主要内容是贪心法求解Min_greedy mst demo

存储器讲述工作原理及作用_电阻式随机存取存储器原理-程序员宅基地

文章浏览阅读3.1w次,点赞12次,收藏64次。转载路径  介绍  存储器(Memory)是现代信息技术中用于保存信息的记忆设备。其概念很广,有很多层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存_电阻式随机存取存储器原理

css3实现六边形-程序员宅基地

文章浏览阅读103次。实现原理:这个效果的主要css样式有:1.>transform: rotate(120deg); 图片旋转2.>overflow:hidden; 超出隐藏3.>visibility: hidden; 也是隐藏,与display:none;相似,但不同的是,它虽然隐藏了,但依然会在网页中占有位置 我们要用到3层div进行旋转来得到这个效果(ps:3层div的大小是一样的)。..._css3 6边型

linux查询内存命令-程序员宅基地

文章浏览阅读100次。1、Linux查看内存的详细信息 [root@c0235 ~]# dmidecode --type memory # dmidecode 2.10 SMBIOS 2.4 present. Handle 0x004A, DMI type 16, 15 bytes Physical Memory ..._内存error correction type: multi-bit ecc

谈谈单元测试之(二):测试工具 JUnit 3_junit3单元测试-程序员宅基地

文章浏览阅读5.5k次,点赞7次,收藏8次。前言上一篇文章《为什么要进行烦人的单元测试?》讨论了一下现阶段软件开发中,程序员们测试情况的现状。这篇文章中,我打算介绍一下单元测试的工具(插件),并且推荐大家以后在开发中,真正的用上单元测试,用好单元测试。说明这篇文章的主题,主要是介绍一下 JUnit 3,虽然 JUnit 3 已经不推荐使用了,但它也曾是风靡一时。这里旨在讨论一下 JUnit 3 的_junit3单元测试

随便推点

基于Matlab分析分期付款陷阱_利率计算matlab代码-程序员宅基地

文章浏览阅读179次。通过Matlab结算可以看出,在费率为0.5%的情况下,但每期实际贷款费率为0.85%,而年利率竟高达10.2%。一般的银行存款年利率在1%到3%之间。_利率计算matlab代码

自由变量和约束变量-程序员宅基地

文章浏览阅读8.8k次。在程序设计语言中,变量可分为自由变量与约束变量两种。简单来说,局部变量和参数都被认为是约束变量;而不是约束变量的则是自由变量。 在冯·诺依曼计算机体系结构的内存中,变量的属性可以视为一个六元组:(名字,地址,值,类型,生命期,作用域)。地址属性具有明显的冯·诺依曼体系结构的色彩,代表变量所关联的存储器地址。类型规定了变量的取值范围和可能的操作。生命期表示变量与某个存储区地址绑定的过程。根据生命期的不_自由变量和约束变量

autox.js截图发送_autojs截图上传-程序员宅基地

文章浏览阅读637次,点赞9次,收藏8次。企业微信webhook发送文件,截屏原图,分辨率约2400*1800大小约2MB。将截图原图发到电脑上,用画图工具打开,确认像素点位置颜色的过程需要用到。2.还有个方法电脑做个上传图片的接口,手机内网直接发到电脑上。1.最简单的方式是手机截图后,用qq等工具把原图发到电脑上。比如做截图,做点位颜色判断时,图片要电脑才能处理。3.通过企业微信发出来,这样哪里都能取到。针对不同的截图做颜色判断,再点击目标位置。交流讨论优化开发速度。_autojs截图上传

关于TCP/IP协议(笔记)_tcp/ip协议是一种硬件-程序员宅基地

文章浏览阅读433次,点赞4次,收藏2次。引言:学习计算机⽹络时我们⼀般采⽤折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采⽤⼀种只有五层协议的体系结构,这样既简洁⼜能将概念阐述清楚,今天就来了解一下TCP/IP。TCP/IP协议包括四个层次:网络接口层、网络层、传输层、应用层。功能:1、网络接口层主要用于实现与传输媒介相关的物理特性,由下而上来看,对于接收到的物理帧数据,得到IP数据包,交给网络层;由上而下来看,从网络层接收到IP数据包封装成帧数据,发送到网络中。2、网络层:处理来自传输层的分组发送请求,收到请求后,将分_tcp/ip协议是一种硬件

springboot运行出错,Caused by: java.io.IOException-程序员宅基地

文章浏览阅读2.3k次。springboot 运行启动,能够正常启动并且运行,但是一开始就在控制台输出如此错误:不知道原因何在??java.io.IOException: 浣犵殑涓绘満涓殑杞欢涓浜嗕竴涓凡寤虹珛鐨勮繛鎺ャ��而且这个提示的中文还乱码?如何解决org.apache.catalina.connector.ClientAbortException: java.io.IOException: 浣犵殑涓绘..._浣犵殑涓绘満涓 殑杞 欢涓 浜嗕竴涓 凡寤虹珛鐨勮繛鎺ャ

frp为服务器配置穿透,实现远程访问内网服务器_frp线路租用-程序员宅基地

文章浏览阅读738次。由于之前远程连接服务器时只能在同一个网络下(局域网)访问,当离开这个网络区域时,要想远程连接则无法实现。本文正是要解决这样一个问题,实现外网远程访问内网服务器的目的。1、首先需要租用一个服务器可以选用阿里云,百度云,腾讯云等,学生租用的话会比较便宜,之前有个同学租用了一个月的阿里云服务器,资费是10/月。2、下载frp,这是一个配置远程访问的脚本文件(不论外网内网都可以通过这个脚本实现..._frp线路租用

推荐文章

热门文章

相关标签