我在处理窗口中滚动条的数学逻辑。具体来说,我不知道变量是什么意思。滚动条逻辑如下所示:
(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谢谢你们。
发布于 2014-10-08 11:19:04
范围是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
https://stackoverflow.com/questions/26254622
复制相似问题