none
谁能详细解释一下 Scroll Bar 的 Scrolling Range 、Scroll Box Position 和 Page Size 之间的关系? RRS feed

  • 问题

  • 我参考了“http://msdn.microsoft.com/en-us/library/bb787527.aspx”的文章,但还是有一些地方不明白。

    文章指出,如果有 260 行文本要显示,但窗口只能显示 16 行,就需要设定滚动条范围为 1 到 244。当滚动位置为 244 时,最后一行会被显示在窗口底端;但下面又指出:

    MaxScrollPos = MaxRangeValue - (PageSize - 1)

    据此计算最大滚动位置为 260 - (16 - 1) = 245。既然 244 就到底了,245 的滚动位置是什么概念?


    EFanZh


    • 已编辑 EFanZh 2012年5月11日 7:18
    2012年5月11日 7:18

答案

  • 好吧,我决定采用 MaxScrollPos = MaxRangeValue - (PageSize - 1) 的公式进行计算。虽然还是不太清楚这个。


    EFanZh

    • 已标记为答案 EFanZh 2012年5月18日 13:48
    2012年5月18日 13:47

全部回复

  •  EFanZh 你好!

    在在MSDN文档About Scroll BarsIf 中,有这样一句话:an application attempts to specify a position value that is less than the minimum or more than the maximum, the minimum or maximum scrolling range value is used instead.

    也就是说,当最大滚动位置为大于244的时候,例如本例的245,就使用最大的范围值244.

    希望我的回复对你有所帮助!

    祝你好运!


    Helen Zhao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月14日 3:32
  • 如果这样的话,那么那个计算公式是什么意思?

    我试了一下,当我设定滚动范围最大值为 10,Page Size 为 3 的时候,当滚动条在最底端的时候,其位置为 8,也就是说明上面给出的公式是正确的,也就是说,245 这个位置是可达的,然而我不能确认这个位置的含义。

    比如说,我有一个高度为 2000px 的位图需要显示,但客户区域的高度只有 600px,这种情况下我的 Scroll Range 和 Page Size 分别该如何设置?

    • 已编辑 EFanZh 2012年5月14日 7:36
    2012年5月14日 6:27
  • 好吧,我决定采用 MaxScrollPos = MaxRangeValue - (PageSize - 1) 的公式进行计算。虽然还是不太清楚这个。


    EFanZh

    • 已标记为答案 EFanZh 2012年5月18日 13:48
    2012年5月18日 13:47