次の方法で共有


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

参照

参照

CWnd クラス

階層図

CWnd::UpdateWindow

ScrollWindow

その他の技術情報

CWnd のメンバ