<Return[S]><Top>

SetScrollInfo

Declare Function Api_SetScrollInfo& Lib "user32" Alias "SetScrollInfo" (ByVal hWnd&, ByVal fnBar As HORZ_VERT, lpcScrollInfo As SCROLLINFO, ByVal fRedraw&)

Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpcScrollInfo As SCROLLINFO, ByVal bool As Boolean) As Long

スクロール可能な最小位置と最大位置、ページサイズ、スクロールボックス(つまみ)の位置など、スクロールバーのさまざまなパラメータを設定する。また、要求に応じてスクロールバーを再描画する。

パラメータ
hwnd
    fnBar パラメータの値に基づいて、スクロールバーコントロールまたはウィンドウのハンドルを指定する。
fnBar
    パラメータを設定するべきスクロールバーのタイプを指定する。次の値のいずれかを指定する。

    値                    意味                                                                                                                                                       
    SB_CTL スクロールバーコントロールのパラメータを設定する。hwnd パラメータで、スクロールバーコントロールのハンドルを指定しな
  ければならない。
    SB_HORZ 水平スクロールバーのパラメータを設定する。hwnd パラメータで、ウィンドウのハンドルを指定しなければならない。
    SB_VERT 垂直スクロールバーのパラメータを設定する。hwnd パラメータで、ウィンドウのハンドルを指定しなければならない。

lpsi
    設定するべき情報を保持している、1 個の SCROLLINFO 構造体へのポインタを指定する。

    この関数を呼び出す前に、SCROLLINFO 構造体の cbSize メンバで sizeof(SCROLLINFO) を指定し、fMask メンバで設定対象のパラメ

    ータを指定し、該当するメンバでパラメータの新しい値を指定する。
    fMask メンバで、次の値の 1 つまたは任意の組み合わせを指定する。

    値                                      意味                                                                                                                                
    SIF_DISABLENOSCROLL スクロールバーに対して指定した新しいパラメータを適用した結果、スクロールバーが不要になる場合、その
  スクロールバーを削除する代わりに無効にする。
    SIF_PAGE lpsi パラメータが指す SCROLLINFO 構造体の nPage メンバで、スクロールページのサイズを設定する。
    SIF_POS lpsi パラメータが指す SCROLLINFO 構造体の nPos メンバで、スクロール位置を設定する。
    SIF_RANGE lpsi パラメータが指す SCROLLINFO 構造体の nMin メンバと nMax メンバで、スクロール範囲を設定する。

fRedraw
    スクロールバーに発生した変更結果に応じて、スクロールバーを再描画するかどうかを指定する。TRUE を指定すると、再描画される。

    FALSE を指定すると、再描画されない。
 

戻り値
    スクロールバーの現在のスクロール位置が返る。

解説
    SetScrollInfo 関数は、SCROLLINFO 構造体のメンバをチェックする。

    nPage メンバは、0 以上 nMax - nMin + 1 以下でなければならない。nPos メンバは、nMin 以上 nMax - max(nPage - 1, 0) 以下でな

    ければならない。どちらかのメンバで不適切な値を指定すると、範囲内に収まるよう値が変更される。