2014-10-08 120 views
0

我正在处理窗口中滚动条的数学逻辑。具体而言,我不知道变量是什么意思。滚动条逻辑如下:滚动条范围的值是多少?

(thumb-size/scroll-bar-size) = (page-size/scroll-bar-range) 

现在,我想知道滚动条范围是什么。我知道滚动条的范围。但我不知道这是如何帮助将其纳入公式。因为我们的范围从[0 ... n]而不是单个值。我们有多个值0,1,2到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

范围是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