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

함수가 성공하면 반환 값은 스크롤 상자의 이전 위치입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

다른 함수에 대한 후속 호출로 스크롤 막대를 다시 그리는 경우 bRedraw 매개 변수를 FALSE 로 설정하는 것이 유용합니다.

스크롤 막대 위치( WM_HSCROLLWM_VSCROLL)를 나타내는 메시지는 16비트 위치 데이터로 제한되므로 위치 데이터에만 의존하는 애플리케이션은 SetScrollPos 함수의 nPos 매개 변수에 대해 실제 최대값인 65,535를 가집니다.

그러나 SetScrollInfo, SetScrollPos, SetScrollRange, GetScrollInfo, 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