滚动条原理分析(在使用纯C + API画列表及列表的滚动条时遇到的问题)
来源:互联网 发布:jquery遍历json集合 编辑:程序博客网 时间:2024/05/19 19:40
滚动条原理分析:
如上图:
列表可以区高度为 200, 子项为 10 个, 每个高度 20, 滚动条高度为 200, 假定滚动条上下按钮高度各为10, 则
滑动块大小为180,
如果数据总长是 400, 就有 200 的高度, 10 个\子项不可见, 则有如下形式:
// 1 ---------------------------------------------------------------------------------
滚动条滑动块的高度 = (滚动条高度 - 滚动条上下按钮高度) / (数据总高度 / 滚动条高度)
= (200 – 20) / (400 / 200)
滚动条滑动块的高度 =90;
// 2 -----------------------------------------------------------------------------------
滑动块可以移动的范围 = (滚动条高度 - 滚动条上下按钮高度) - 滑动块的高度
= (200 – 20) – 90
滑动块可以移动的范围 =90
/ 3 ----------------------------------------------------------------------------------
不可见数据高度 = (数据总高度 - 滚动条高度(或列表高度))
不可见数据高度 = 400 –200 == 200
// 4 ----------------------------------------------------------------------------------
要移动的次数 =不可见数据高度/ 子项高度
= 200 / 20
要移动的次数 =10
// 5 ----------------------------------------------------------------------------------
那么 列表子项滚动一次, 滑动块要移动的距离为:
滑动块1次移动的距离 =滑动块可以移动的范围 / (要移动的次数 * X)
1 = 90 / (10X)
X = 9
反过来, 滑动块移动1次, 1 的距离, 子项要滚动 的次数是 1X = 9 / 9
------------------------------------------------------------------------------------------------
示例: 列表可以区高度为 200, 子项为 10 个, 每个高度 20, 滚动条高度为 200,
假定滚动条上下按钮高度各为10,则滑动块大小为180,
如果数据总长是 380, 就有 180 的高度, 10 个\子项不可见, 则有如下形式:
// 公式1:
滚动条滑动块的高度 = (200 – 20) / (380 / 200)= 180 / 1.9 = 94.7 约为 95
// 公式2:
滑动块可以移动的范围 = (200 – 20) – 95 = 180 –95 = 85
// 公式3:
不可见数据高度 = 380 – 200 = 180
// 公式4:
要移动的次数 = 180 / 20 = 9
// 公式5:
列表子项滚动1次, 滑动块1次移动的距离 = 85 / (9X) = 9.4 约为 9
//
更多可以直接去看我的共享代码 无句柄画列表-基本功能已实现.rar
每一个 C/C++的UI 代码画家都要经过的事….
- 滚动条原理分析(在使用纯C + API画列表及列表的滚动条时遇到的问题)
- 使用JAVA SWING 实现列表以及列表的滚动条
- 下拉列表和滚动条等无法显示的问题
- QT改变列表项的高度&隐藏列表滚动条
- 使用Twaver的树表时,遇到滚动条的问题
- 滚动条的问题
- 滚动条的使用
- 滚动条的使用
- BCB 列表框 滚动条
- bootstrap列表添加滚动条
- 基于WTL Windows Mobile 的自定义滚动条和列表
- 对列表框上滚动条的设置
- JQuery Mobile+ iscroll 列表滚动条的实现
- JQuery Mobile+ iscroll 列表滚动条的实现
- 关于JLable列表的自动滚动条的显示:当JLable列表的内容超出JPanel面板所规定的高度时,自动显示滚动条的方法
- ReactNative学习实例(二)输入框,滚动条,列表的简单使用
- 定位滚动条的问题
- iframe 滚动条的问题
- 大规模分布式系统架构与设计实战
- ZK示例
- 你总是会这样那样的受伤,有时候很痛
- 银行业务调度系统
- Draw Line and Bar Chart with Matplotlib 画线和图表
- 滚动条原理分析(在使用纯C + API画列表及列表的滚动条时遇到的问题)
- 笔试面试(4)百度2014软件开发工程师笔试题详解
- flex 身份证验证
- cocos3D 初体验
- 通过td获取其父节点的id
- 计算机4级网络攻城尸笔记
- 心理学导论(第9版)笔记 第一章 心理学是什么?
- C Primer Plus汇总
- C Primer Plus汇总 (二)错误笔记