ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年9月19日(水) 05:55

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2006年5月31日(水) 17:57 
 ウインドウにスクロールバーを付けてクライアントエリアの
ビットマップをスクロールさせたいのですが、その際に設定
が必要になる構造体「SCROLLINFO」について、
そのメンバ変数 nPageとnMax(nMin)、
それぞれの値が意味するところを教えてください。


 例えば、Y方向高さが400ドットのビットマップがあったして、
それを300ドットの高さのクライアントエリアに表示するとします。
 ウインドウに垂直スクロールバーをつけてスクロールさせたいと
すると、、
 
「nMax」についてはある説明で、
 "nMin, nMaxは最小、最大スクロール位置を指定します。"
とありました。ただこの「最大スクロール位置」というのが
具体的にどの位置(長さ)を意味しているのか分からず、
とりあえず下のように見当を付けて見たのですが、
コード:
             _____________
           (|             |)
          ( |             | ) 表示する
ビットマップ(  |             |  ) クライアント
 全体の高さ (  |             |  ) エリアの高さ
    (400)(  |             | ) (300)
         (  |             |)
         (   -------------
          ( |             |) スクロールで動く
           (|             |) (見えてくる)
             ------------- 範囲の大きさ(100)

( 図が分かりづらくなってしまっていたらすみません。)

 上の図の「スクロールで動く範囲 」の最大値、つまり
「100」をnMaxに設定してみました。

 同様に、「nPage」は、
 "nPageはページサイズを指定します。この値がページアップ・ページダウン
のスクロール量となります。" と書かれているのを読みました。
これもとりあえず「表示するクライアントエリアの高さ」で「300」と
設定してみました。

 ただし実行結果は、、、

 スクロールバーのつまみ(サム)の大きさは、
"ビットマップ全体の高さに対する
表示するクライアントエリアの高さ"に比例した大きさ、
この場合スクロール可動域の3/4を占める大きさで
表示されるのが本当だと思いますが、そうはならず
スクロールバー自体、表示されません。

 あれこれ考えて適当に設定しているとき、
「nMax」に「ビットマップ全体の高さ」(400)を、
「nPage」に「表示するクライアントエリアの高さ」(300)を
それぞれセットして実行してみると、
パッと見た感じではスクロールバーのつまみ(サム)の大きさは
それ相応になっているようにも見えました。
(もしそうだとするとつまみの大きさは「nPage/nMax」で
計算されるのでしょうか?) 
が、ただハッキリとそれがそうだとは分かりません。


 「最小、最大スクロール位置」
 「ページアップ・ページダウンのスクロール量」
 「つまみの大きさの算出法」

 それぞれは具体的にどのような大きさを、値を指す
ものなのでしょうか。


通報する
ページトップ
   
投稿記事Posted: 2017年10月29日(日) 21:19 
http://wisdom.sakura.ne.jp/system/winap ... win50.html


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 2 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[3人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke