滚动条范围的价值是什么?

时间:2014-10-08 10:26:03

标签: c windows winapi

我正在处理窗口中滚动条的数学逻辑。具体而言,我不知道变量意味着什么。滚动条逻辑如下:

 (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

谢谢你们。

1 个答案:

答案 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