다음을 통해 공유


스크롤 막대 정보

창은 창의 클라이언트 영역보다 큰 문서나 비트맵과 같은 데이터 개체를 표시할 수 있습니다. 스크롤 막대가 제공되면 사용자는 클라이언트 영역에서 데이터 개체를 스크롤하여 창의 테두리를 넘어 확장되는 개체 부분을 볼 수 있습니다.

스크롤 막대는 클라이언트 영역의 콘텐츠가 창의 테두리를 넘어 확장되는 모든 창에 포함되어야 합니다. 스크롤 막대의 방향은 사용자가 스크롤 막대를 작동할 때 스크롤이 발생하는 방향을 결정합니다. 가로 스크롤 막대를 사용하면 창 콘텐츠를 왼쪽 또는 오른쪽으로 스크롤할 수 있습니다. 세로 스크롤 막대를 사용하면 콘텐츠를 위쪽 또는 아래쪽으로 스크롤할 수 있습니다.

이 섹션에서 설명하는 항목은 다음과 같습니다.

스크롤 막대의 일부

스크롤 막대는 양 끝에 화살표 단추가 있는 음영 축과 화살표 단추 사이에 있는 스크롤 상자(엄지라고도 함)로 구성됩니다. 스크롤 막대는 창의 클라이언트 영역에 있는 데이터 개체의 전체 길이 또는 너비를 나타냅니다. 스크롤 상자는 클라이언트 영역에 표시되는 개체의 부분을 나타냅니다. 사용자가 데이터 개체를 스크롤하여 다른 부분을 표시할 때마다 스크롤 상자의 위치가 변경됩니다. 또한 시스템은 스크롤 막대의 스크롤 상자 크기를 조정하여 창에 현재 표시되는 전체 데이터 개체의 부분을 나타냅니다. 대부분의 개체가 표시되는 경우 스크롤 상자는 대부분의 스크롤 막대 샤프트를 차지합니다. 마찬가지로 개체의 작은 부분만 표시되는 경우 스크롤 상자는 스크롤 막대 샤프트의 작은 부분을 차지합니다.

사용자는 화살표 단추 중 하나를 클릭하거나, 음영 처리된 스크롤 막대 샤프트의 영역을 클릭하거나, 스크롤 상자를 끌어 창의 창 콘텐츠를 스크롤합니다. 사용자가 화살표 단추를 클릭하면 애플리케이션은 콘텐츠를 한 단위씩(일반적으로 한 줄 또는 열) 스크롤합니다. 사용자가 음영 처리된 영역을 클릭하면 애플리케이션이 콘텐츠를 창 하나씩 스크롤합니다. 사용자가 스크롤 상자를 끌 때 발생하는 스크롤 크기는 사용자가 스크롤 상자를 끄는 거리와 스크롤 막대의 스크롤 범위에 따라 달라집니다. 스크롤 범위에 대한 자세한 내용은 스크롤 상자 위치 및 스크롤 범위를 참조하세요.

다음 스크린샷은 Windows Vista에 나타날 수 있는 세로 및 가로 스크롤 막대가 있는 풍부한 편집 컨트롤을 보여 줍니다. 스크린샷을 찍을 때 마우스 포인터로 가리키고 있었기 때문에 세로 스크롤 막대는 현재 "핫" 항목입니다.

스크롤 막대가 있는 서식 있는 편집 컨트롤의 스크린샷

표준 스크롤 막대 및 스크롤 막대 컨트롤

스크롤 막대는 표준 스크롤 막대 또는 스크롤 막대 컨트롤로 창에 포함됩니다. 표준 스크롤 막대는 창의 비클라이언트 영역에 있습니다. 창으로 만들어지고 창이 표시될 때 표시됩니다. 표준 스크롤 막대의 유일한 목적은 사용자가 클라이언트 영역의 전체 콘텐츠를 보기 위한 스크롤 요청을 생성할 수 있도록 하는 것입니다. 창을 만들 때 WS_HSCROLL, WS_VSCROLL 또는 두 스타일을 지정하여 표준 스크롤 막대를 창에 포함할 수 있습니다. WS_HSCROLL 스타일은 클라이언트 영역의 아래쪽에 있는 가로 스크롤 막대를 만듭니다. WS_VSCROLL 스타일은 클라이언트 영역의 오른쪽에 있는 세로 스크롤 막대를 만듭니다. SM_CXHSCROLL 및 SM_CYHSCROLL 시스템 메트릭 값은 표준 가로 스크롤 막대의 너비와 높이를 정의합니다. SM_CXVSCROLL 및 SM_CYVSCROLL 값은 표준 세로 스크롤 막대의 너비와 높이를 정의합니다. 표준 스크롤 막대는 연결된 창의 일부이므로 자체 창 핸들이 없습니다.

스크롤 막대 컨트롤은 SCROLLBAR 창 클래스에 속하는 컨트롤 창입니다. 스크롤 막대 컨트롤이 나타나고 표준 스크롤 막대처럼 작동하지만 별도의 창입니다. 스크롤 막대 컨트롤은 별도의 창으로서 직접 입력 포커스를 사용합니다. 표준 스크롤 막대와 달리 스크롤 막대 컨트롤에는 기본 제공 키보드 인터페이스도 있습니다.

단일 창에서 필요한 만큼 많은 스크롤 막대 컨트롤을 사용할 수 있습니다. 스크롤 막대 컨트롤을 만들 때 스크롤 막대의 크기와 위치를 지정해야 합니다. 그러나 스크롤 막대 컨트롤의 창 크기를 조정할 수 있는 경우 창 크기가 변경될 때마다 스크롤 막대의 크기를 조정해야 합니다.

표준 스크롤 막대를 사용할 경우의 장점은 시스템이 스크롤 막대를 만들고 크기와 위치를 자동으로 설정한다는 것입니다. 그러나 표준 스크롤 막대가 너무 제한적인 경우도 있습니다. 예를 들어 클라이언트 영역을 사분면으로 나누고 별도의 스크롤 막대 집합을 사용하여 각 사분면의 콘텐츠를 제어한다고 가정합니다. 특정 창에 대해 하나의 스크롤 막대 집합만 만들 수 있으므로 표준 스크롤 막대를 사용할 수 없습니다. 스크롤 막대 컨트롤을 원하는 만큼 창에 추가할 수 있으므로 대신 스크롤 막대 컨트롤을 사용합니다.

애플리케이션은 창의 내용을 스크롤하는 것 외에 다른 용도로 스크롤 막대 컨트롤을 제공할 수 있습니다. 예를 들어 화면 보호기 애플리케이션은 화면에서 그래픽이 이동하는 속도를 설정하기 위한 스크롤 막대를 제공할 수 있습니다.

스크롤 막대 컨트롤에는 스크롤 막대의 방향과 위치를 제어하는 다양한 스타일이 있을 수 있습니다. CreateWindowEx 함수를 호출하여 스크롤 막대 컨트롤을 만들 때 원하는 스타일을 지정합니다. 일부 스타일은 기본 너비 또는 높이를 사용하는 스크롤 막대 컨트롤을 만듭니다. 그러나 항상 x 및 y 좌표와 스크롤 막대의 다른 차원을 지정해야 합니다.

스크롤 막대 컨트롤 스타일 표를 보려면 스크롤 막대 컨트롤 스타일을 참조하세요.

참고

스크롤 막대에서 시각적 스타일을 사용하려면 애플리케이션에 매니페스트가 포함되어야 하며 프로그램 시작 부분에서 InitCommonControls를 호출해야 합니다. 시각적 스타일에 대한 자세한 내용은 시각적 스타일 사용을 참조하세요. 매니페스트에 대한 자세한 내용은 시각적 스타일 사용을 참조하세요.

 

스크롤 상자 위치 및 스크롤 범위

스크롤 상자의 위치는 정수로 표시됩니다. 스크롤 막대가 가로인지 또는 세로인지에 따라 스크롤 막대의 왼쪽 또는 위쪽 끝을 기준으로 합니다. 위치는 스크롤 범위의 최솟값 및 최댓값 내에 있어야 합니다. 예를 들어 범위가 0~100인 스크롤 막대에서 위치 50은 가운데에 오며, 나머지 위치는 스크롤 막대를 따라 동일하게 분산됩니다. 초기 범위는 스크롤 막대에 따라 달라집니다. 표준 스크롤 막대의 초기 범위는 0에서 100까지입니다. 스크롤 막대 컨트롤에는 컨트롤을 만들 때 명시적 범위를 제공하지 않는 한, 범위는 비어 있습니다(최솟값과 최댓값 모두 0). 언제든지 범위를 변경할 수 있습니다. SetScrollInfo 함수를 사용하여 범위 값을 설정하고 GetScrollInfo 함수를 사용하여 현재 범위 값을 검색할 수 있습니다.

애플리케이션은 일반적으로 스크롤 범위를 편리한 정수로 조정하므로 스크롤 상자 위치를 스크롤할 데이터 개체에 해당하는 값으로 쉽게 변환할 수 있습니다. 예를 들어 애플리케이션이 한 번에 16줄만 표시할 수 있는 창에 텍스트 파일의 260줄을 표시해야 하는 경우 세로 스크롤 막대 범위를 1에서 244로 설정할 수 있습니다. 스크롤 상자가 위치 1에 있으면 첫 번째 줄은 창 맨 위에 옵니다. 스크롤 상자가 위치 244에 있으면 마지막 줄(줄 260)은 창 맨 아래에 옵니다. 애플리케이션이 최솟값보다 작거나 최댓값보다 큰 위치 값을 지정하려고 하면 최소 또는 최대 스크롤 범위 값이 대신 사용됩니다.

스크롤 막대의 페이지 크기를 설정할 수 있습니다. 페이지 크기는 현재 크기가 지정된 소유자 창의 클라이언트 영역에 들어갈 수 있는 데이터 단위의 수를 나타냅니다. 예를 들어 클라이언트 영역에 16줄의 텍스트가 있을 수 있는 경우 애플리케이션은 페이지 크기를 16으로 설정합니다. 시스템은 스크롤 막대 샤프트의 스크롤 범위 및 길이와 함께 페이지 크기를 사용하여 스크롤 상자의 크기를 설정합니다. 스크롤 막대가 포함된 창의 크기가 조정될 때마다 애플리케이션은 SetScrollInfo 함수를 호출하여 페이지 크기를 설정해야 합니다. 애플리케이션은 보내는 GetScrollInfo 함수를 호출하여 현재 페이지 크기를 검색할 수 있습니다.

스크롤 막대 범위와 데이터 개체 간에 유용한 관계를 설정하려면 애플리케이션이 데이터 개체의 크기가 변경될 때마다 범위를 조정해야 합니다.

사용자가 스크롤 막대에서 스크롤 상자를 이동하면 스크롤 막대가 스크롤 상자 위치를 스크롤 범위의 정수로 보고합니다. 위치가 최솟값인 경우 스크롤 상자는 세로 스크롤 막대의 위쪽 또는 가로 스크롤 막대의 왼쪽 끝에 있습니다. 위치가 최댓값인 경우 스크롤 상자는 세로 스크롤 막대의 아래쪽 또는 가로 스크롤 막대의 오른쪽 끝에 있습니다.

스크롤 막대가 보고할 수 있는 최댓값(즉, 최대 스크롤 위치)은 페이지 크기에 따라 달라집니다. 스크롤 막대의 페이지 크기가 1보다 큰 경우 최대 스크롤 위치가 최대 범위 값보다 작습니다. 다음 수식을 사용하여 최대 스크롤 위치를 계산할 수 있습니다.

MaxScrollPos = MaxRangeValue - (PageSize - 1) 

애플리케이션은 스크롤 막대에서 스크롤 상자를 이동해야 합니다. 사용자가 스크롤 막대에서 스크롤을 요청하지만 스크롤 막대는 스크롤 상자 위치를 자동으로 업데이트하지 않습니다. 대신, 부모 창에 요청을 전달하며 부모 창은 데이터를 스크롤하고 스크롤 상자 위치를 업데이트해야 합니다. 애플리케이션은 SetScrollInfo 함수를 사용하여 스크롤 상자 위치를 업데이트합니다. 그렇지 않으면 SetScrollPos 함수를 사용합니다. 스크롤 상자 이동을 제어하기 때문에 애플리케이션은 스크롤되는 데이터에 가장 적합한 증분 단위만큼 스크롤 상자를 이동할 수 있습니다.

스크롤 막대 표시 여부

시스템은 지정된 최솟값과 최댓값이 같으면 표준 스크롤 막대를 숨기고 사용하지 않도록 설정합니다. 또한 스크롤 막대의 전체 스크롤 범위를 포함하는 페이지 크기를 지정하는 경우 시스템은 표준 스크롤 막대를 숨기고 사용하지 않도록 설정합니다. 이와 같은 방식으로 클라이언트 영역의 콘텐츠에 필요하지 않을 때 스크롤 막대를 일시적으로 숨깁니다. 스크롤 막대가 숨겨져 있을 때는 스크롤 막대를 통해 스크롤 요청을 할 필요가 없습니다. 시스템은 스크롤 막대를 사용하도록 설정하며, 사용자가 최솟값과 최댓값을 같지 않은 값으로 설정하고 페이지 크기에 전체 스크롤 범위가 포함되지 않을 때 스크롤 막대를 다시 표시합니다. ShowScrollBar 함수를 사용하여 스크롤 막대를 숨기거나 표시할 수도 있습니다. 스크롤 막대의 범위, 페이지 크기 또는 스크롤 상자 위치에는 영향을 주지 않습니다.

EnableScrollBar 함수를 사용하여 스크롤 막대의 하나 또는 두 화살표를 모두 사용하지 않도록 설정할 수 있습니다. 애플리케이션은 비활성화된 화살표를 회색으로 표시하고 사용자 입력에 응답하지 않습니다.

스크롤 막대 요청

사용자는 스크롤 막대의 다양한 부분을 클릭하여 스크롤 요청을 만듭니다. 시스템은 WM_HSCROLL 또는 WM_VSCROLL 메시지의 형태로 지정된 창에 요청을 보냅니다. 가로 스크롤 막대는 WM_HSCROLL 메시지를 보내고 세로 스크롤 막대는 WM_VSCROLL 메시지를 보냅니다. 각 메시지에는 사용자의 작업, 스크롤 막대에 대한 핸들(스크롤 막대 컨트롤만 해당) 및 경우에 따라 스크롤 상자의 위치에 해당하는 요청 코드가 포함됩니다.

다음 다이어그램은 스크롤 막대의 다양한 부분을 클릭할 때 사용자가 생성하는 요청 코드를 보여 줍니다.

두 개의 스크롤 막대에서 각 영역과 연결된 요청 코드를 보여 주는 다이어그램

SB_ 값은 사용자가 수행하는 작업을 지정합니다. 애플리케이션은 WM_HSCROLLWM_VSCROLL 메시지와 함께 제공되는 코드를 검사한 후 적절한 스크롤 작업을 수행합니다. 다음 표에서는 각 값에 대해 지정된 사용자 작업과 애플리케이션의 응답이 나열됩니다. 각 경우에 단위는 데이터에 맞게 애플리케이션에서 정의합니다. 예를 들어 텍스트를 세로로 스크롤하는 일반적인 단위는 텍스트 줄입니다.

요청 작업 응답
SB_LINEUP 사용자가 위쪽 스크롤 화살표를 클릭합니다. 스크롤 상자 위치를 줄입니다. 한 단위씩 데이터 맨 위로 스크롤합니다.
SB_LINEDOWN 사용자가 아래쪽 스크롤 화살표를 클릭합니다. 스크롤 상자 위치를 늘립니다. 한 단위씩 데이터 맨 아래로 스크롤합니다.
SB_LINELEFT 사용자가 왼쪽 스크롤 화살표를 클릭합니다. 스크롤 상자 위치를 줄입니다. 한 단위씩 데이터 왼쪽 끝으로 스크롤합니다.
SB_LINERIGHT 사용자가 오른쪽 스크롤 화살표를 클릭합니다. 스크롤 상자 위치를 늘립니다. 한 단위씩 데이터 오른쪽 끝으로 스크롤합니다.
SB_PAGEUP 사용자가 스크롤 상자 위의 스크롤 막대 샤프트를 클릭합니다. 스크롤 상자 위치를 창의 데이터 단위 수만큼 줄입니다. 동일한 수의 단위만큼 데이터 맨 위로 스크롤합니다.
SB_PAGEDOWN 사용자가 스크롤 상자 아래의 스크롤 막대 샤프트를 클릭합니다. 스크롤 상자 위치를 창의 데이터 단위 수만큼 늘립니다. 동일한 수의 단위만큼 데이터 맨 아래로 스크롤합니다.
SB_PAGELEFT 사용자가 스크롤 상자 왼쪽의 스크롤 막대 샤프트를 클릭합니다. 스크롤 상자 위치를 창의 데이터 단위 수만큼 줄입니다. 동일한 수의 단위만큼 데이터 왼쪽 끝으로 스크롤합니다.
SB_PAGERIGHT 사용자가 스크롤 상자 오른쪽의 스크롤 막대 샤프트를 클릭합니다. 스크롤 상자 위치를 창의 데이터 단위 수만큼 늘립니다. 동일한 수의 단위만큼 데이터 오른쪽 끝으로 스크롤합니다.
SB_THUMBPOSITION 사용자가 스크롤 상자를 끌어서 놓습니다. 스크롤 상자를 메시지에 지정된 위치로 설정합니다. 스크롤 상자가 이동한 것과 동일한 수의 단위만큼 데이터를 스크롤합니다.
SB_THUMBTRACK 사용자가 스크롤 상자를 끕니다. 스크롤 상자를 메시지에 지정된 위치로 설정하고, 데이터를 빠르게 그리는 애플리케이션에 대해 스크롤 상자가 이동한 것과 동일한 수의 단위만큼 데이터를 스크롤합니다. 데이터를 빠르게 그릴 수 없는 애플리케이션은 스크롤 상자를 이동하고 데이터를 스크롤하기 전에 SB_THUMBPOSITION 요청 코드를 기다려야 합니다.
SB_ENDSCROLL 사용자가 화살표 또는 스크롤 막대 샤프트를 마우스로 눌렀다가 놓습니다. 응답은 필요하지 않습니다.

 

스크롤 막대는 사용자가 스크롤 상자를 클릭하고 끌 때 SB_THUMBPOSITION 및 SB_THUMBTRACK 요청 코드를 생성합니다. 애플리케이션은 SB_THUMBTRACK 또는 SB_THUMBPOSITION 요청 코드를 처리하도록 프로그래밍되어야 합니다.

SB_THUMBPOSITION 요청 코드는 사용자가 스크롤 상자를 클릭한 후 마우스 단추를 놓을 때 발생합니다. 이 메시지를 처리하는 애플리케이션은 사용자가 스크롤 상자를 원하는 위치로 끌어온 후 마우스 단추를 놓으면 스크롤 작업을 수행합니다.

사용자가 스크롤 상자를 끌면 SB_THUMBTRACK 요청 코드가 발생합니다. 애플리케이션이 SB_THUMBTRACK 요청 코드를 처리하는 경우 사용자가 스크롤 상자를 끌 때 창의 콘텐츠를 스크롤할 수 있습니다. 그러나 스크롤 막대는 짧은 기간 동안 많은 SB_THUMBTRACK 요청 코드를 생성할 수 있으므로 애플리케이션은 창의 콘텐츠를 빠르게 다시 그릴 수 있는 경우에만 이러한 요청 코드를 처리해야 합니다.

스크롤 막대에 대한 키보드 인터페이스

스크롤 막대 컨트롤은 사용자가 키보드를 사용하여 스크롤 요청을 실행할 수 있는 기본 제공 키보드 인터페이스를 제공하지만 표준 스크롤 막대는 이러한 인터페이스를 제공하지 않습니다. 스크롤 막대 컨트롤에 키보드 포커스가 있으면 사용자가 화살표 키를 누를 때 WM_HSCROLLWM_VSCROLL 메시지를 부모 창으로 보냅니다. 요청 코드는 사용자가 누른 화살표 키에 해당하는 각 메시지와 함께 전송됩니다. 다음은 화살표 키와 해당 요청 코드입니다.

화살표 키 요청 코드
아래로 SB_LINEDOWN 또는 SB_LINERIGHT
End SB_BOTTOM
Home SB_TOP
LEFT SB_LINEUP 또는 SB_LINELEFT
PGDN SB_PAGEDOWN 또는 SB_PAGERIGHT
PGUP SB_PAGEUP 또는 SB_PAGELEFT
RIGHT SB_LINEDOWN 또는 SB_LINERIGHT
UP SB_LINEUP 또는 SB_LINELEFT

 

 

참고

스크롤 막대 컨트롤의 키보드 인터페이스는 SB_TOP 및 SB_BOTTOM 요청 코드를 보냅니다. SB_TOP 요청 코드는 사용자가 스크롤 범위의 최상위 값에 도달했음을 나타냅니다. 애플리케이션은 창 콘텐츠를 아래쪽으로 스크롤하여 데이터 개체의 위쪽을 표시합니다. SB_BOTTOM 요청 코드는 사용자가 스크롤 범위의 최하위 값에 도달했음을 나타냅니다. 애플리케이션은 SB_BOTTOM 요청 코드를 처리하는 경우 창 콘텐츠를 위쪽으로 스크롤하여 데이터 개체의 아래쪽을 표시합니다.

 

표준 스크롤 막대에 대한 키보드 인터페이스를 원할 경우 창 프로시저에서 WM_KEYDOWN 메시지를 처리한 다음, 메시지와 함께 제공되는 가상 키 코드를 기준으로 적절한 스크롤 작업을 수행하여 직접 키보드 인터페이스를 만들 수 있습니다. 스크롤 막대에 대한 키보드 인터페이스를 만드는 방법에 대한 자세한 내용은 표준 스크롤 막대에 대한 키보드 인터페이스 만들기를 참조하세요.

클라이언트 영역 스크롤

클라이언트 영역의 콘텐츠를 스크롤하는 가장 간단한 방법은 지웠다가 다시 그리는 것입니다. 이 방법은 애플리케이션이 일반적으로 완전히 새로운 콘텐츠가 필요한 SB_PAGEUP, SB_PAGEDOWN 및 SB_TOP 요청 코드와 함께 사용할 수 있는 방법입니다.

SB_LINEUP 및 SB_LINEDOWN 같은 일부 요청 코드의 경우 스크롤이 발생한 후에도 일부 콘텐츠가 계속 표시되므로 모든 콘텐츠를 지워야 하는 것은 아닙니다. ScrollWindowEx 함수는 클라이언트 영역 콘텐츠의 일부를 보존하고, 보존된 부분을 지정된 양만큼 이동한 다음, 새 정보를 그리기 위한 나머지 클라이언트 영역을 준비합니다. ScrollWindowExBitBlt 함수를 사용하여 데이터 개체의 특정 부분을 클라이언트 영역 내의 새 위치로 이동합니다. 클라이언트 영역의 발견된 부분(보존되지 않은 모든 부분)은 다음 WM_PAINT 메시지가 발생할 때 무효화되고 지워졌다가 다시 그려집니다.

ScrollWindowEx 함수를 사용하여 스크롤 작업에서 클라이언트 영역의 일부를 제외할 수 있습니다. 이렇게 하면 자식 창과 같은 고정된 위치의 항목이 클라이언트 영역 내에서 이동하지 않게 됩니다. 새 정보를 받을 클라이언트 영역의 부분을 자동으로 무효화하므로 애플리케이션은 자체 클리핑 영역을 계산할 필요가 없습니다. 클리핑에 대한 자세한 내용은 클리핑을 참조하세요.

일반적으로 애플리케이션은 스크롤 막대로 표시된 것과 반대 방향으로 창 콘텐츠를 스크롤합니다. 예를 들어 사용자가 스크롤 상자 아래 영역에서 스크롤 막대 샤프트를 클릭하면 애플리케이션이 창의 개체를 위쪽으로 스크롤하여 표시되는 부분 아래에 있는 개체의 부분을 표시합니다.

ScrollDC 함수를 사용하여 사각형 영역을 스크롤할 수도 있습니다.

스크롤 막대 색 및 메트릭

시스템 정의 색 값인 COLOR_SCROLLBAR는 스크롤 막대 샤프트 내의 색을 제어합니다. GetSysColor 함수를 사용하여 스크롤 막대 샤프트의 색을 확인하고 SetSysColors 함수를 사용하여 스크롤 막대 샤프트의 색을 설정합니다. 그러나 이러한 색 변경은 시스템의 모든 스크롤 막대에 영향을 줍니다.

GetSystemMetrics 함수를 호출하여 시스템이 표준 스크롤 막대에서 사용하는 비트맵의 크기를 가져올 수 있습니다. 다음은 스크롤 막대와 연결된 시스템 메트릭 값입니다.

시스템 메트릭 이름 설명
SM_CXHSCROLL 가로 스크롤 막대의 화살표 비트맵 너비
SM_CXHTHUMB 가로 스크롤 막대의 스크롤 상자 너비. 이 값은 페이지 크기가 0인 스크롤 막대 너비를 검색합니다.
SM_CXVSCROLL 세로 스크롤 막대의 화살표 비트맵 너비
SM_CYHSCROLL 가로 스크롤 막대의 화살표 비트맵 높이
SM_CYVSCROLL 세로 스크롤 막대의 화살표 비트맵 높이
SM_CYVTHUMB 세로 스크롤 막대의 스크롤 상자 높이. 이 값은 페이지 크기가 0인 스크롤 막대의 높이를 검색합니다.