我正在处理窗口中滚动条的数学逻辑。具体来说,我不知道变量是什么意思。滚动条逻辑如下:
(thumb-size / scroll-bar-size) = (page-size / scroll-bar-range)
现在,我想知道滚动条范围是什么。我知道滚动条的范围是多少。但我不知道这如何有助于将其放入公式中。因为我们的范围是 [0...n] 而不是单个值。我们有多个值零、一、二到 n。
例如,如果我有一个如下定义的滚动条范围:
SCROLLINFO si;
si.nMin = 0; // minimum value of scroll-bar-range
si.nMax = 50; // maximum value of scroll-bar-range
si.nPage = 25; // page-size
如何将范围代入上述公式?假设本例中的范围是[0..50]。我不知道这是否正确,但这就是我的直觉告诉我的。
无论如何,在这种情况下,页面大小将为 25。但是我用什么来代替上面公式中的滚动条范围呢?是51吗?这将给出:
25 / 51
谢谢大家。
最佳答案
范围是nMax-nMin+1!所以是 51。
事实上,设置 nMin=0 nMax=50 且 nPage 为 25。将会导致 nPos 在 0 到 26 之间的范围内! http://msdn.microsoft.com/en-us/library/windows/desktop/bb787595(v=vs.85).aspx
原因是,如果 nPos(顶行)位于索引 26 上,则该页上有 25 行从 26 到编号 50。
在您的示例中,商 25/51 告诉系统滚动区域将覆盖滚动条完整 (1.0) 空间的 21/51。因为拇指的大小显示了可滚动区域中相对页面的位置。
HTH
关于c - 滚动条范围的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26254622/