CWnd::ScrollWindow
現在の CWnd オブジェクトのクライアント領域の内容をスクロールします。
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL
);
パラメーター
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 を再描画します。
必要条件
**ヘッダー:**afxwin.h