SetScrollRange 関数 (winuser.h)
SetScrollRange 関数は、指定したスクロール バーのスクロール ボックスの最小位置と最大位置を設定します。
構文
BOOL SetScrollRange(
[in] HWND hWnd,
[in] int nBar,
[in] int nMinPos,
[in] int nMaxPos,
[in] BOOL bRedraw
);
パラメーター
[in] hWnd
種類: HWND
nBar パラメーターの値に応じて、スクロール バー コントロールまたは標準のスクロール バーを持つウィンドウにハンドルします。
[in] nBar
型: int
設定するスクロール バーを指定します。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
スクロール バー コントロールの範囲を設定します。 hwnd パラメーターは、スクロール バー コントロールのハンドルである必要があります。 |
|
ウィンドウの標準的な水平スクロール バーの範囲を設定します。 |
|
ウィンドウの標準的な垂直スクロール バーの範囲を設定します。 |
[in] nMinPos
型: int
スクロールの最小位置を指定します。
[in] nMaxPos
型: int
最大スクロール位置を指定します。
[in] bRedraw
種類: BOOL
変更を反映するためにスクロール バーを再描画するかどうかを指定します。 このパラメーターが TRUE の場合、スクロール バーが再描画されます。 FALSE の場合、スクロール バーは再描画されません。
戻り値
種類: BOOL
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
SetScrollRange を使用すると、nMinPos と nMaxPos を同じ値に設定することで、スクロール バーを非表示にすることができます。 アプリケーションでは、スクロール バー メッセージの処理中にスクロール バーを非表示にする SetScrollRange 関数を呼び出さないでください。 新しいアプリケーションでは、 ShowScrollBar 関数を使用してスクロール バーを非表示にする必要があります。
SetScrollRange の呼び出しが SetScrollPos 関数の呼び出しの直後にある場合、スクロール バーが 2 回描画されないようにするには、SetScrollPos の bRedraw パラメーターを 0 にする必要があります。
標準スクロール バーの既定の範囲は 0 ~ 100 です。 スクロール バー コントロールの既定の範囲は空です ( nMinPos パラメーターと nMaxPos パラメーター値の両方が 0 です)。 nMinPos パラメーターと nMaxPos パラメーターで指定された値の差は、MAXLONG の値より大きくすることはできません。
スクロール バーの位置 ( WM_HSCROLL と WM_VSCROLL) を示すメッセージは位置データの 16 ビットに制限されるため、位置データに対してこれらのメッセージのみに依存するアプリケーションでは、 SetScrollRange 関数の nMaxPos パラメーターに対して実用的な最大値は 65,535 になります。
ただし、SetScrollInfo、SetScrollPos、SetScrollRange、GetScrollInfo、GetScrollPos、および GetScrollRange 関数は 32 ビットのスクロール バー位置データをサポートしているため、WM_HSCROLLとWM_VSCROLL メッセージの 16 ビット バリアを回避する方法があります。 この手法の説明については、「 GetScrollInfo 」を参照してください。
nBar パラメーターがSB_CTLされ、hWnd パラメーターで指定されたウィンドウがシステム スクロール バー コントロールではない場合、システムはSBM_SETRANGE メッセージをウィンドウに送信してスクロール バー情報を設定します。 これにより、 SetScrollRange は、スクロール バーを模倣するカスタム コントロールを操作できます。 ウィンドウで SBM_SETRANGE メッセージが処理されない場合、 SetScrollRange 関数は失敗します。
例
例については、「 Owner-Display クリップボード形式の使用」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | 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で導入) |
こちらもご覧ください
リファレンス