ScrollWindow 関数 (winuser.h)
ScrollWindow 関数は、指定したウィンドウのクライアント領域の内容をスクロールします。
構文
BOOL ScrollWindow(
[in] HWND hWnd,
[in] int XAmount,
[in] int YAmount,
[in] const RECT *lpRect,
[in] const RECT *lpClipRect
);
パラメーター
[in] hWnd
種類: HWND
クライアント領域をスクロールするウィンドウを処理します。
[in] XAmount
型: int
水平スクロールの量をデバイス単位で指定します。 スクロールするウィンドウに CS_OWNDC または CS_CLASSDC スタイルがある場合、このパラメーターはデバイスユニットではなく論理ユニットを使用します。 ウィンドウの内容を左にスクロールするには、このパラメーターに負の値を指定する必要があります。
[in] YAmount
型: int
垂直スクロールの量をデバイス単位で指定します。 スクロールするウィンドウに CS_OWNDC または CS_CLASSDC スタイルがある場合、このパラメーターはデバイスユニットではなく論理ユニットを使用します。 ウィンドウの内容を上にスクロールするには、このパラメーターは負の値である必要があります。
[in] lpRect
型: const RECT*
スクロールするクライアント領域の部分を指定する RECT 構造体へのポインター。 このパラメーターが NULL の場合、クライアント領域全体がスクロールされます。
[in] lpClipRect
型: const RECT*
クリッピング四角形の座標を含む RECT 構造体へのポインター。 クリッピング四角形内のデバイス ビットのみが影響を受けます。 四角形の外側から内側にスクロールされたビットが描画されます。四角形の内側から外側にスクロールされたビットは塗りつぶされません。
戻り値
種類: BOOL
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
キャレットがスクロール中のウィンドウにある場合、 ScrollWindow はキャレットを自動的に非表示にして、キャレットが消去されないようにしてから、スクロールが完了した後にキャレットを復元します。 キャレットの位置はそれに応じて調整されます。
ScrollWindow によって明らかにされた領域は再描画されませんが、ウィンドウの更新領域に結合されます。 アプリケーションは最終的に、リージョンを再描画する必要があることを通知する WM_PAINT メッセージを受け取ります。 スクロールが動作しているのと同時にカバーされていない領域を再描画するには、 ScrollWindow を呼び出した直後に UpdateWindow 関数を呼び出します。
lpRect パラメーターが NULL の場合、ウィンドウ内の子ウィンドウの位置は、XAmount パラメーターと YAmount パラメーターで指定された量だけオフセットされます。ウィンドウ内の無効な (未描画の) 領域もオフセットされます。 lpRect が NULL の場合、ScrollWindow の方が高速です。
lpRect が NULL でない場合、子ウィンドウの位置は変更されず、ウィンドウ内の無効な領域はオフセットされません。 lpRect が NULL でない場合に更新の問題が発生しないようにするには、ScrollWindow を呼び出す前に UpdateWindow を呼び出してウィンドウを再描画します。
例
例については、「 WM_PAINT メッセージを含むテキストのスクロール」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-window-l1-1-4 (Windows 10 バージョン 10.0.14393 で導入) |
こちらもご覧ください
その他のリソース
リファレンス