GetScrollPos 関数 (winuser.h)

GetScrollPos 関数は、指定したスクロール バーのスクロール ボックス (サム) の現在位置を取得します。 現在の位置は、現在のスクロール範囲に依存する相対値です。 たとえば、スクロール範囲が 0 ~ 100 で、スクロール ボックスがバーの中央にある場合、現在の位置は 50 です。

メモGetScrollPos 関数は、下位互換性のために提供されます。 新しいアプリケーションでは 、GetScrollInfo 関数を使用する必要があります。
 

構文

int GetScrollPos(
  [in] HWND hWnd,
  [in] int  nBar
);

パラメーター

[in] hWnd

型: HWND

nBar パラメーターの値に応じて、スクロール バー コントロールまたは標準のスクロール バーがあるウィンドウを処理します。

[in] nBar

型: int

検査するスクロール バーを指定します。 このパラメーターには、次の値のいずれかを指定できます。

意味
SB_CTL
スクロール バー コントロール内のスクロール ボックスの位置を取得します。 hWnd パラメーターは、スクロール バー コントロールのハンドルである必要があります。
Sb_horz
ウィンドウの標準の水平スクロール バーのスクロール ボックスの位置を取得します。
SB_VERT
ウィンドウの標準垂直スクロール バーのスクロール ボックスの位置を取得します。

戻り値

型: int

関数が成功した場合、戻り値はスクロール ボックスの現在の位置です。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

GetScrollPos 関数を使用すると、アプリケーションは 32 ビットのスクロール位置を使用できます。 スクロール バーの位置、WM_HSCROLLWM_VSCROLLを示すメッセージは 16 ビットの位置データに制限されますが、関数 SetScrollPos、SetScrollRangeGetScrollPosおよび GetScrollRange では、32 ビットのスクロール バー位置データがサポートされます。 したがって、アプリケーションは、WM_HSCROLLまたはWM_VSCROLLメッセージの処理中に GetScrollPos を呼び出して、32 ビットのスクロール バー位置データを取得できます。

WM_HSCROLLまたはWM_VSCROLL メッセージのSB_THUMBTRACK要求コード中にスクロール ボックス (サム) の 32 ビット位置を取得するには、GetScrollInfo 関数を使用します。

nBar パラメーターがSB_CTLされ、hWnd パラメーターで指定されたウィンドウがシステム スクロール バー コントロールでない場合、システムはSBM_GETPOS メッセージをウィンドウに送信してスクロール バー情報を取得します。 これにより、 GetScrollPos は、スクロール バーを模倣するカスタム コントロールで操作できます。 ウィンドウで SBM_GETPOS メッセージが処理されない場合、 GetScrollPos 関数は失敗します。

要件

   
サポートされている最小のクライアント 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で導入)

こちらもご覧ください

GetScrollInfo

GetScrollRange

リファレンス

SetScrollInfo

SetScrollPos

SetScrollRange

WM_HSCROLL

WM_VSCROLL