0

我正在学习 Windows 编程,我不明白滚动条的滚动范围和页面大小。

基于http://msdn.microsoft.com/en-us/library/bb787527.aspx

MaxScrollPos = MaxRangeValue - (PageSize - 1)

但为什么?我认为如果

MaxScrollPos = MaxRangeValue - PageSize

如果我想显示一个高度为2000px,客户端高度为600px的位图,自然设置滚动范围为[0, 2000],页面大小为600。当滚动位置为0时,位图的顶部被展示; 当滚动位置为 1400 时,显示位图的底部。但是如果我这样做,我可以将滚动位置设置为 2000 - (600 - 1) = 1401。如果 1400 应该显示底部,那么位置 1401 是什么意思?如果“MaxScrollPos”确实等于“MaxRangeValue - PageSize”,那么一切都会完美运行。现在我必须将滚动范围设置为 [0, 1999] 以避免该问题。我认为这是不自然的。那么,有谁能解释一下吗?

4

1 回答 1

1

从 0 到 1999 的范围涵盖 2000 个值。这是一个从零开始的索引,而您的像素大小计数从 1 开始。

于 2012-05-14T08:03:21.273 回答