Share via


setScrollPos 函式 (winuser.h)

SetScrollPos函式會設定捲動方塊的位置 (捲軸) 在指定的捲軸中,如果要求,請重新繪製捲軸以反映捲動方塊的新位置。

注意SetScrollPos函式提供回溯相容性。 新的應用程式應該使用 SetScrollInfo 函式。
 

語法

int SetScrollPos(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nPos,
  [in] BOOL bRedraw
);

參數

[in] hWnd

類型: HWND

根據 nBar 參數的值,處理捲軸控制項或具有標準捲軸的視窗。

[in] nBar

類型: int

指定要設定的捲軸。 此參數可以是下列其中一個值。

意義
SB_CTL
設定捲軸控制項中捲動方塊的位置。 hwnd參數必須是捲軸控制項的控制碼。
SB_HORZ
設定捲動方塊在視窗的標準水準捲軸中的位置。
SB_VERT
設定視窗標準垂直捲動條中捲動方塊的位置。

[in] nPos

類型: int

指定捲動方塊的新位置。 位置必須位於捲動範圍內。 如需捲動範圍的詳細資訊,請參閱 SetScrollRange 函式。

[in] bRedraw

類型: BOOL

指定是否要重新繪製捲軸以反映新的捲動方塊位置。 如果此參數為 TRUE,則會重新繪製捲軸。 如果是 FALSE,則捲軸不會重新繪製。

傳回值

類型: int

如果函式成功,則傳回值是捲動方塊的上一個位置。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果捲動列是由另一個函式的後續呼叫重新繪製, 請將 bRedraw 參數設定為 FALSE 很有用。

由於指出捲軸位置 的訊息WM_HSCROLLWM_VSCROLL限制為 16 位的位置資料,因此只依賴位置資料之訊息的應用程式,對於 SetScrollPos 函式的 nPos 參數,其實際值為 65,535。

不過,由於SetScrollInfoSetScrollPosSetScrollRangeGetScrollInfo、GetScrollPosGetScrollRange函式支援 32 位捲軸位置資料,因此有辦法規避WM_HSCROLLWM_VSCROLL訊息的 16 位屏障。 如需技術的描述,請參閱 GetScrollInfo

如果 nBar 參數SB_CTL且 hWnd 參數指定的視窗不是系統捲軸控制項,則系統會將 SBM_SETPOS 訊息傳送至視窗以設定捲軸資訊。 這可讓 SetScrollPos 在模擬捲軸的自訂控制項上運作。 如果視窗未處理 SBM_SETPOS 訊息, SetScrollPos 函式會失敗。

規格需求

   
最低支援的用戶端 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)

另請參閱

GetScrollInfo

GetScrollPos

GetScrollRange

參考

SetScrollInfo

SetScrollRange