SetScrollPos 関数 (winuser.h)
SetScrollPos 関数は、指定したスクロール バー内のスクロール ボックス (サム) の位置を設定し、要求された場合は、スクロール ボックスの新しい位置を反映するようにスクロール バーを再描画します。
構文
int SetScrollPos(
[in] HWND hWnd,
[in] int nBar,
[in] int nPos,
[in] BOOL bRedraw
);
パラメーター
[in] hWnd
種類: HWND
nBar パラメーターの値に応じて、スクロール バー コントロールまたは標準のスクロール バーを持つウィンドウにハンドルします。
[in] nBar
型: int
設定するスクロール バーを指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
スクロール バー コントロール内のスクロール ボックスの位置を設定します。 hwnd パラメーターは、スクロール バー コントロールのハンドルである必要があります。 |
|
ウィンドウの標準的な水平スクロール バーのスクロール ボックスの位置を設定します。 |
|
ウィンドウの標準的な垂直スクロール バーのスクロール ボックスの位置を設定します。 |
[in] nPos
型: int
スクロール ボックスの新しい位置を指定します。 位置はスクロール範囲内である必要があります。 スクロール範囲の詳細については、 SetScrollRange 関数を参照してください。
[in] bRedraw
種類: BOOL
新しいスクロール ボックスの位置を反映するようにスクロール バーを再描画するかどうかを指定します。 このパラメーターが TRUE の場合、スクロール バーが再描画されます。 FALSE の場合、スクロール バーは再描画されません。
戻り値
型: int
関数が成功した場合、戻り値はスクロール ボックスの前の位置になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
スクロール バーを別の関数の後続の呼び出しによって再描画する場合は、 bRedraw パラメーターを FALSE に設定すると便利です。
スクロール バーの位置 ( WM_HSCROLL と WM_VSCROLL) を示すメッセージは、位置データの 16 ビットに制限されているため、位置データに対してこれらのメッセージのみに依存するアプリケーションでは、 SetScrollPos 関数の nPos パラメーターの実際の最大値は 65,535 です。
ただし、SetScrollInfo、SetScrollPos、SetScrollRange、GetScrollInfo、GetScrollPos、および GetScrollRange 関数は 32 ビットのスクロール バー位置データをサポートしているため、WM_HSCROLLとWM_VSCROLL メッセージの 16 ビット バリアを回避する方法があります。 この手法の説明については、「 GetScrollInfo 」を参照してください。
nBar パラメーターがSB_CTLされ、hWnd パラメーターで指定されたウィンドウがシステム スクロール バー コントロールではない場合、システムはSBM_SETPOS メッセージをウィンドウに送信してスクロール バー情報を設定します。 これにより、 SetScrollPos は、スクロール バーを模倣するカスタム コントロールを操作できます。 ウィンドウで SBM_SETPOS メッセージが処理されない場合、 SetScrollPos 関数は失敗します。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-misc-l1-2-0 (Windows 8.1で導入) |
関連項目
リファレンス