データウィンドウ以外のコントロールをスクリプトでスクロールする
2021/04/02
方法
リストボックスなど、データウィンドウ以外のコントロールでスクロールを行うためには、Send 関数で対象のコントロールにメッセージを送信します。
リストボックスやツリービューなどのコントロールはスクロールするための関数やイベントが用意されていませんが、Send 関数で垂直スクロールを指定する定数とスクロール量を指定する定数を渡すことでスクロールが可能です。 スクロールを行う構文は以下のとおりです。
Send( コントロールのハンドル, メッセージNo, lowword, 0)
パラメーター
メッセージNo | 水平スクロール | 226 |
---|---|---|
垂直スクロール | 227 | |
lowword | 1 つ上 (左) へスクロール | 0 |
1 つ下 (右) へスクロール | 1 | |
1 ページ上 (左) へスクロール | 2 | |
1 ページ下 (下) へスクロール | 3 | |
最上部 (左端) へスクロール | 6 | |
最下部 (右端) へスクロール | 7 |
【例】垂直スクロール
CONSTANT integer WM_VSCROLL = 277 // 垂直スクロール CONSTANT integer SB_LINEUP = 0 // 1 行上へ CONSTANT integer SB_LINEDOWN = 1 // 1 行下へ CONSTANT integer SB_PAGEUP = 2 // 1 ページ上へ CONSTANT integer SB_PAGEDOWN = 3 // 1 ページ下へ CONSTANT integer SB_TOP = 6 // 最上部へ CONSTANT integer SB_BOTTOM = 7 // 最下部へ // リストボックス (lb_1) を 1 行下にスクロール Send(Handle(lb_1), WM_VSCROLL, SB_LINEDOWN, 0)
【例】垂直スクロール
CONSTANT integer WM_HSCROLL = 276 // 水平スクロール CONSTANT integer SB_LINELEFT = 0 // 左へ CONSTANT integer SB_LINERIGHT = 1 // 右へ CONSTANT integer SB_PAGELEFT = 2 // 1 ページ左へ CONSTANT integer SB_PAGERIGHT = 3 // 1 ページ右へ CONSTANT integer SB_LEFT = 6 // 左端へ CONSTANT integer SB_RIGHT = 7 // 右端へ // ツリービュー (tv_1) を右端にスクロール Send(Handle(tv_1), WM_HSCROLL, SB_RIGHT, 0)
Tips情報
プロダクト :PowerBuilder
バージョン :2017R3