<Return[S]><Top>

ScrollWindow

Declare Function Api_ScrollWindow& Lib "user32" Alias "ScrollWindow" (ByVal hWnd&, ByVal XAmount&, ByVal YAmount&, lpRect As RECT, lpClipRect As RECT)

Declare Function ScrollWindow Lib "user32" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long

パラメータ
xAmount
    水平方向のスクロール量をデバイス単位で指定する。左にスクロールするには、このパラメータに負の値を設定する。
yAmount
    垂直方向のスクロール量をデバイス単位で指定する。上にスクロールするには、負の値を設定する。
lpRect
    スクロールするクライアント領域の部分を指定する CRect オブジェクトまたは RECT 構造体を指す。

    lpRect が NULL の場合は、クライアント領域全体がスクロールされる。

    カーソル四角形がスクロール四角形と交差している場合は、カレットが再配置される。
lpClipRect
    スクロールするクリッピング四角形を指定する CRect オブジェクトまたは RECT 構造体を指す。

    この四角形の内側のビットだけがスクロールする。この四角形の外側のビットは、lpRect で指定された四角形の内側にあっても、影響を受

    けない。このパラメータが NULL の場合、スクロールする四角形はクリッピングされない。
 

解説
    スクロールする CWnd にカレットがある場合は、ScrollWindow 関数は自動的にカレットを非表示にし、消去されないようにする。

    スクロール終了後カレットは元に戻される。カレットの位置は、元の位置に応じて調整される。
    ScrollWindow メンバ関数を使って更新された領域は再描画されないが、現在の CWnd オブジェクトの更新領域に結合される。

    アプリケーションは、領域を再描画する必要があることを通知する WM_PAINT メッセージを最終的に受け取る。

    スクロール終了と同時に更新された領域を再描画するには、ScrollWindow 関数を呼び出した直後に UpdateWindow メンバ関数を呼び出

    す。
    lpRect が NULL の場合は、ウィンドウ内の子ウィンドウの位置は、xAmount と yAmount で指定された量だけオフセットされる。

    CWnd 内の無効な (描画されていない) 領域もオフセットされる。

    ScrollWindow 関数は、lpRect に NULL を指定すると処理がより速くなる。
    lpRect が NULL でない場合、子ウィンドウの位置は変更されず、CWnd 内の無効領域もオフセットされない。

    lpRect が NULL でない場合に、画面の更新に問題が生じないようにするには、ScrollWindow を呼び出す前に UpdateWindow メンバ関

    数を使って CWnd を再描画する。