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

함수가 값을 검색한 경우 반환 값은 0이 아닌 값입니다.

함수가 값을 검색하지 않으면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

GetScrollInfo 함수를 사용하면 애플리케이션에서 32비트 스크롤 위치를 사용할 수 있습니다. 스크롤 막대 위치, WM_HSCROLLWM_VSCROLL 나타내는 메시지는 16비트 위치 데이터만 제공하지만 SetScrollInfoGetScrollInfo 함수는 32비트 스크롤 막대 위치 데이터를 제공합니다. 따라서 애플리케이션은 WM_HSCROLL 또는 WM_VSCROLL 메시지를 처리하는 동안 GetScrollInfo를 호출하여 32비트 스크롤 막대 위치 데이터를 가져올 수 있습니다.

WM_HSCROLL 또는 WM_VSCROLL메시지에서 SB_THUMBTRACK 요청 코드 중에 스크롤 상자(thumb)의 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