CWnd::ScrollWindow
更新 : 2007 年 11 月
現在の 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