Share via


GetScrollInfo 函式 (winuser.h)

GetScrollInfo 函式會擷取滾動條的參數,包括滾動條的最小和最大卷動位置、頁面大小,以及滾動盒的位置 () 。

語法

BOOL GetScrollInfo(
  [in]      HWND         hwnd,
  [in]      int          nBar,
  [in, out] LPSCROLLINFO lpsi
);

參數

[in] hwnd

類型: HWND

根據 fnBar 參數的值,處理滾動條控件或具有標準滾動條的視窗。

[in] nBar

類型: int

指定要擷取參數的滾動條類型。 此參數可以是下列其中一個值。

意義
SB_CTL
擷取滾動條控件的參數。 hwnd 參數必須是滾動條控件的句柄。
SB_HORZ
擷取視窗標準水準滾動條的參數。
SB_VERT
擷取視窗標準垂直滾動條的參數。

[in, out] lpsi

類型: LPSCROLLINFO

SCROLLINFO 結構的指標。 呼叫 GetScrollInfo 之前,請將 cbSize 成員設定為 sizeof (SCROLLINFO) ,並將 fMask 成員設定為指定要擷取的滾動條參數。 傳回之前,函式會將指定的參數複製到結構的適當成員。

fMask 成員可以是下列一或多個值。

意義
SIF_PAGE
將捲動頁面複製到 lpsi 所指向 SCROLLINFO 結構的 nPage 成員。
SIF_POS
將捲動位置複製到 lpsi 所指向 SCROLLINFO 結構的 nPos 成員。
SIF_RANGE
將滾動範圍複製到 lpsi 所指向 SCROLLINFO 結構的 nMinnMax 成員。
SIF_TRACKPOS
將目前的滾動盒追蹤位置複製到 lpsi 所指向 SCROLLINFO 結構的 nTrackPos 成員。

傳回值

類型: BOOL

如果函式擷取任何值,則傳回值為非零值。

如果函式未擷取任何值,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

GetScrollInfo 函式可讓應用程式使用32位捲動位置。 雖然指出滾動條位置的訊息WM_HSCROLLWM_VSCROLL,但只提供16位的位置數據,但SetScrollInfo和 GetScrollInfo 函式會提供32位的滾動條位置數據。 因此,應用程式可以在處理WM_HSCROLLWM_VSCROLL訊息時呼叫 GetScrollInfo,以取得 32 位滾動條位置數據。

若要在WM_HSCROLLWM_VSCROLL訊息的SB_THUMBTRACK要求程式代碼期間,取得滾動盒 () 的 32 位位置,請使用 SCROLLINFO 結構的 fMask 成員中的SIF_TRACKPOS值呼叫 GetScrollInfo。 函式會傳回 SCROLLINFO 結構的 nTrackPos 成員中滾動盒的追蹤位置。 這可讓您在使用者移動捲動方塊時取得滾動盒的位置。 下列範例程式代碼說明技術。

SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            si.fMask = SIF_TRACKPOS;
 
          // Call GetScrollInfo to get current tracking 
          //    position in si.nTrackPos
 
            if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
                return 1; // GetScrollInfo failed
            break;
        .
        .
        .
    }

如果 fnBar 參數SB_CTL,且 hwnd 參數指定的視窗不是系統滾動條控制件,則系統會將 SBM_GETSCROLLINFO 訊息傳送至視窗以取得滾動條資訊。 這可讓 GetScrollInfo 在模擬滾動條的自定義控件上操作。 如果視窗未處理 SBM_GETSCROLLINFO 訊息, GetScrollInfo 函式會失敗。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-misc-l1-2-0 (於 Windows 8.1)

另請參閱

參考

SCROLLINFO

SetScrollInfo

WM_HSCROLL

WM_VSCROLL