滚动条 实现的细节代码 SCROLLINFO
今天分析了以前的一段自绘 滚动条的代码, 终于明白了滚动条的细节。
对于Edit 来说
SCROLLINFO si1;
si1.nMin:0, si1.nMax:14, si1.nPage:6, si1.nPos:9, si1.nTrackPos:9
例如上面信息:
si1.nMax - si1.nMin + 1
代表编辑框中文字的总行数
si1.nPage:6
编辑框一页可以容纳的行数(在不足一显示页时为当前页中的行数),
一页:在不用滚动条的情况下最多可以显示的行数。编辑框大,可以显示nPage的就大
si1.nPos:9, si1.nTrackPos:9
滚动条把Edit中文本滚过的行数, 每次点击滚动条上下箭头,编辑框滚动1行
假设 nPage=10,
si1.nMax - si1.nMin + 1 = 100
则nPos最大为 100 - 10 = 90, 对于垂直滚动条来说,此时滑块滚到了最底端。
垂直滚动条滑块高度的计算:
si1.nMax - si1.nMin + 1 = 800 编辑框文本总行数
si1.nPage = 100 编辑框最多一页最多容纳 100 行
假设垂直滚动条:
TotalHeight = 100 像素, 上下2个Arrow各 10像素,
则 InterHeight = TotalHeight - HeightOf(Arrow)*2 = 100 -10*2 = 80
ThumbHeight = si1.nPage * InterHeight /(si1.nMax - si1.nMin + 1)
= 100 * 80/(800) = 10 像素
计算滑块的位置:
对于垂直滚动条,计算滑块Thumb的最上端的位置 ThumbPos
EmptyHeight = InterHeight – ThumbHeight
EmptyHeight: 滚动条内空白区域的总高度
InterHeight: 滚动条出去上下箭头的高度
ThumbHeight: 滑块的高度
存在下面比例关系:
si1.nTrackPos/( si1.nMax - si1.nMin + 1 - si1.nPage) = ThumbPos/EmptyHeight;
si1.nMax - si1.nMin + 1 - si1.nPage
需要滚动条滚动才能显示的总行数(对应滚动条的空白区域)
si1.nTrackPos
已经滚动的行数(对应滑块的位置)
则滑块最顶端 ThumbPos = EmptyHeight * si1.nTrackPos/( si1.nMax - si1.nMin + 1 - si1.nPage)
滚动条 实现的细节代码 SCROLLINFO相关推荐
- 滚动条 实现的细节代码 SCROLLINFO
今天分析了以前的一段自绘 滚动条的代码, 终于明白了滚动条的细节. 对于Edit 来说 SCROLLINFO si1; si1.nMin:0, si1.nMax:14, si1.nPage:6, si ...
- OpenCV播放视频-----滚动条随着视频播放移动代码
学习OpenCV,使用highGUI工具包实现视频的播放控制,使滚动条随着视频播放移动 代码如下: #include "highgui.h" #include "dire ...
- python tqdm 不换行_python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
默认的tqdm的滚动条的宽度很大,所以会使得总长度超过窗口一行所能显示的量,所以发生上下滚动 解决方法:初始化tqdm时,初始化行数参数ncols=10,这个值可以自己调:尽量大到不能引起上下滚动,同 ...
- js获取window窗口高度(页面滚动条可滚动高度) - 代码篇
js中获取窗口高度的方法 取窗口滚动条滚动高度 (如下文 · 截图) 一. javascript 和 jquery代码: //原生 javascript 代码: let scrollHeight = ...
- html滚动条颜色代码,设置div滚动条颜色的css代码
这篇文章我们来给大家介绍一下设置p滚动条颜色的css代码. 这里是你要显示的内容 SCROLLBAR-FACE-COLOR(立体滚动条凸出部分的颜色) SCROLLBAR-HIGHLIGHT-COLO ...
- 滚动html颜色,DIV 自动滚动功能及滚动条颜色修改的代码
废话不多说了,直接给大家贴代码了.具体代码如下所示: 1.DIV 自动滚动 function startmarquee(lh, speed, delay) { var t; var oHeight = ...
- html5中如何使图片滚动条,如何使RMarkdown代码块中出现垂直滚动条(html视图)
我发现了许多示例,概述了如何将水平滚动条添加到R Markdown HTML输出,包括此特定示例 here.但是,没有描述如何添加垂直滚动条的示例.再次借用链接的示例,但将宽矩阵转换为"高& ...
- html背景图片随鼠标滚动条,博客音效代码、滚动条代码、单张图片滚动代码、背景图片代码、个性鼠标(2)...
[99补]隐形博客音效代码 一句代码直接插入,比你从任何地方看到的都要简单: dynsrc=http://www.smartclub.com.cn/smart_sms/music/male/hktk. ...
- el图片滚动_element的el-table中记录滚动条位置的示例代码
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- 深度学习下的医学图像分析 2
- 面试精讲之面试考点及大厂真题 - 分布式专栏 04 谈谈你对分布式的理解,为什么引入分布式?
- python 回归去掉共线性_线性回归中的多重共线性与岭回归
- 小白转前端,学习哪些知识点才能不走弯路?
- string能存多大数据_信息技术助力精准教学:大数据到底有多好用?
- 英国科研学术网络Janet遭遇DDoS攻击
- 软硬件兼容性问题学习笔记
- XE5 搭建DataSnap服务
- 数据结构/图论:最小生成树问题
- [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
- ArcGIS分享: 地图分幅及编号
- GoEasy使用方法记录
- 【Android应用】 九宫格日志
- 2022年阿里云域名备案流程亲测及注意事项
- ZEMAX | 使用 ZPL 宏进行优化:ZPLM 操作数
- 史上最详细的PID教程——理解PID原理及优化算法
- 在网页中嵌入QQ聊天、阿里旺旺聊天、邮件发送等代码
- Kaggle TMDB 票房预测挑战赛
- python中的values函数_Pandas之排序函数sort_values()的实现
- angular快速入门教程
热门文章
- Cortex-M3的时钟
- 阿里年薪50WJAVA工程师转大数据学习路线!
- VSCode(Visual Studio Code) 在Python中,自动提示函数选中后带括号设置
- 全国计算机电脑系统有问题吗,笔记本重装系统对电脑有影响吗
- 哔咔官网打不开显示黑屏?
- 单纯形法和单纯形表法
- 中控打卡机二次开发注册控件问题
- Idea 打包JAVA项目
- WebRTC 之 SDP
- 痛苦的事, 伤心的事, 一生只需要一次, 别折腾, 别忘痛- 人生, 软件, 所有人皆如是!...