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 に答える