GetScrollInfo 函式 (winuser.h)
GetScrollInfo 函式會擷取滾動條的參數,包括滾動條的最小和最大卷動位置、頁面大小,以及滾動盒的位置 () 。
語法
BOOL GetScrollInfo(
[in] HWND hwnd,
[in] int nBar,
[in, out] LPSCROLLINFO lpsi
);
參數
[in] hwnd
類型: HWND
根據 fnBar 參數的值,處理滾動條控件或具有標準滾動條的視窗。
[in] nBar
類型: int
指定要擷取參數的滾動條類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
擷取滾動條控件的參數。 hwnd 參數必須是滾動條控件的句柄。 |
|
擷取視窗標準水準滾動條的參數。 |
|
擷取視窗標準垂直滾動條的參數。 |
[in, out] lpsi
類型: LPSCROLLINFO
SCROLLINFO 結構的指標。 呼叫 GetScrollInfo 之前,請將 cbSize 成員設定為 sizeof (SCROLLINFO) ,並將 fMask 成員設定為指定要擷取的滾動條參數。 傳回之前,函式會將指定的參數複製到結構的適當成員。
fMask 成員可以是下列一或多個值。
值 | 意義 |
---|---|
|
將捲動頁面複製到 lpsi 所指向 SCROLLINFO 結構的 nPage 成員。 |
|
將捲動位置複製到 lpsi 所指向 SCROLLINFO 結構的 nPos 成員。 |
|
將滾動範圍複製到 lpsi 所指向 SCROLLINFO 結構的 nMin 和 nMax 成員。 |
|
將目前的滾動盒追蹤位置複製到 lpsi 所指向 SCROLLINFO 結構的 nTrackPos 成員。 |
傳回值
類型: 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 成員中滾動盒的追蹤位置。 這可讓您在使用者移動捲動方塊時取得滾動盒的位置。 下列範例程式代碼說明技術。
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) |
另請參閱
參考