GetScrollInfo 関数はスクロールバーのパラメータ(最小・最大スクロール位置、ページサイズ、スクロールボックス(サム)位置を含む)を取得する。
GetScrollInfo hwnd, nBar, lpsi
hwnd : [intptr] 型: HWND fnBar パラメータの値により、スクロールバーコントロールへのハンドル、または標準スクロールバーを持つウィンドウへのハンドル。 nBar : [int] 型: int lpsi : [var] 型: LPSCROLLINFO SCROLLINFO 構造体へのポインタ。GetScrollInfo を呼び出す前に cbSize メンバに sizeof(SCROLLINFO) を設定し、fMask メンバに取得するスクロールバーパラメータを指定する。関数は処理を終える前に指定されたパラメータを構造体の該当メンバにコピーする。
(プラグイン / モジュール : user32.dll)
GetScrollInfo 関数はスクロールバーのパラメータ(最小・最大スクロール位置、ページサイズ、スクロールボックス(サム)位置を含む)を取得する。 [戻り値] 型: BOOL 関数が何らかの値を取得した場合、戻り値は非ゼロである。何も取得しなかった場合、戻り値はゼロである。拡張エラー情報を取得するには GetLastError を呼ぶ。 [備考] GetScrollInfo はアプリケーションが 32 ビットのスクロール位置を使えるようにする。スクロールバー位置を示すメッセージである WM_HSCROLL や WM_VSCROLL は 16 ビットの位置データしか持たないが、SetScrollInfo と GetScrollInfo は 32 ビットのスクロールバー位置データを提供する。したがって、WM_HSCROLL または WM_VSCROLL メッセージの処理中に GetScrollInfo を呼ぶことで 32 ビットのスクロール位置データを取得できる。WM_HSCROLL または WM_VSCROLL メッセージ内で SB_THUMBTRACK リクエストコードを処理中にスクロールボックス(サム)の 32 ビット位置を取得するには、SCROLLINFO 構造体の fMask メンバに SIF_TRACKPOS を指定して GetScrollInfo を呼ぶ。関数は SCROLLINFO 構造体の nTrackPos メンバにスクロールボックスの追跡位置を返す。これによりユーザーがスクロールボックスを動かしている最中の位置を取得できる。次のサンプルコードはこのテクニックを示す。 (以下省略)
| プラグイン / モジュール | user32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_user32_gen2.hs |