我正在处理窗口中滚动条的数学逻辑。具体而言,我不知道变量意味着什么。滚动条逻辑如下:
(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
谢谢你们。
答案 0 :(得分:1)
范围是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告诉系统,tumb区域将覆盖滚动条的整个(1.0)空间的21/51。因为拇指的大小在可滚动区域中显示相对页面位置。
HTH