スクロールバーに関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あらがっきー

スクロールバーに関して

#1

投稿記事 by あらがっきー » 15年前

スクロールバーに関して

ツール等で右側に表示されるスクロールバーを自前でゲームに実装したいと
思っているのですが、スクロールバーのサイズや、上下の矢印を除いたバーの
移動量の出し方がどうなっているのか?わからず悩んでいます。

あまり、数学は得意ではないのですが、一般的な計算方法というか、公式が
あれば、ご教授頂けたら幸いです。

宜しくお願いいたします。

Ma

Re:スクロールバーに関して

#2

投稿記事 by Ma » 15年前

公式なんてあるのか分かりませんが、私は試行錯誤で自前で作りました。
当然非効率性が生まれるとは思いますが・・・。

>スクロールバーのサイズ
単純に1度に表示できる量はどれだけか決定、次に表示したい量はその1度に表示できる量の何倍か、
その倍数が分かればその逆数を取ればバーの何割を占めるかわかるのではないでしょうか?
(ただし、倍数が1未満のときはサイズの上限を超えるので、スクロールバーのサイズの割合は1にする。)

たとえば、10行が表示できるMAXとし、30行あるなら3倍、つまり全体の三分の一、
だからバー全体の三分の一を占めますよね。

逆に 5行しか表示するものがないなら、 0.5倍、逆数をとると2倍になってしまいますが、1倍以上は上限を超えるので、1倍として固定。


>上下の矢印を除いたバーの
>移動量の出し方
単純に、バーが移動できる長さ分のバーが移動した長さで全体の何%移動するべきなのかを導きだせば、バーのスクロール量からページの移動量が把握できます。

(バー移動量 px) /((スクロールバー全体の長さ px)-(バーの長さ px)) = ページ移動割合

(ページ移動割合は、0から1の値)

逆にページの移動量から、バーの移動量を求めたいならば、

ページ移動割合 *((スクロールバー全体の長さ px)- (バーの長さpx)) = (バー移動量 px)




まぁ、私の考え方であり、もっといい方法があるかもしれませんが、参考までに。

あらがっきー

Re:スクロールバーに関して

#3

投稿記事 by あらがっきー » 15年前

Maさん
レスありがとうございます。
お返事が遅れて申し訳ありません。

お教え頂いた方法で実装できました。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る