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

参照

参照

CWnd クラス

階層図

CWnd::UpdateWindow

ScrollWindow

概念

CWnd のメンバー