플랫 스크롤 막대

Microsoft Internet Explorer 4.0에는 플랫 스크롤 막대라는 새로운 시각적 기술이 도입되었습니다. 기능적으로 플랫 스크롤 막대는 표준 스크롤 막대처럼 동작합니다. 차이점은 표준 스크롤 막대보다 훨씬 더 많이 모양을 사용자 지정할 수 있다는 것입니다.

다음 그림에서는 플랫 스크롤 막대가 포함된 창을 보여 줍니다.

플랫 스크롤 막대가 포함된 창의 스크린샷

참고

일반 스크롤 막대는 Comctl32.dll 버전 4.71에서 5.82까지 지원됩니다. Comctl32.dll 버전 6.00 이상은 플랫 스크롤 막대를 지원하지 않습니다.

 

플랫 스크롤 막대 사용

이 섹션에서는 애플리케이션에서 플랫 스크롤 막대를 구현하는 방법에 대해 설명합니다.

시작하기 전에

플랫 스크롤 막대 함수를 사용하려면 원본 파일에 Commctrl.h를 포함하고 Comctl32.lib와 연결해야 합니다.

창에 플랫 스크롤 막대 추가

창에 플랫 스크롤 막대를 추가하려면 InitializeFlatSB를 호출하여 창에 핸들을 전달합니다. 표준 스크롤 막대 함수를 사용하여 스크롤 막대를 조작하는 대신 동등한 FlatSB_XXX 함수를 사용해야 합니다. 스크롤 정보, 범위 및 위치를 설정하고 검색하기 위한 플랫 스크롤 막대 함수가 있습니다. 창에 대해 플랫 스크롤 막대가 초기화되지 않은 경우 사용되는 플랫 스크롤 막대 API는 해당 표준 함수를 따릅니다. 이를 통해 조건부 코드를 작성하지 않고도 플랫 스크롤 막대를 켜고 끌 수 있습니다.

애플리케이션이 플랫 스크롤 막대에 대한 사용자 지정 메트릭을 설정했을 수 있으므로 시스템 메트릭이 변경될 때 자동으로 업데이트되지 않습니다. 시스템 스크롤 막대 메트릭이 변경되면 WM_SETTINGCHANGE 메시지는 브로드캐스트되며 wParamSPI_SETNONCLIENTMETRICS로 설정됩니다. 플랫 스크롤 막대를 새 시스템 메트릭으로 업데이트하려면 애플리케이션이 이 메시지를 처리하고 플랫 스크롤 막대의 메트릭 종속 속성을 명시적으로 변경해야 합니다.

스크롤 막대 속성을 업데이트하려면 FlatSB_SetScrollProp을 사용합니다. 다음 코드 조각은 플랫 스크롤 막대의 메트릭 종속 속성을 현재 시스템 값으로 변경합니다.

void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}

플랫 스크롤 막대 개선

FlatSB_SetScrollProp를 사용하면 플랫 스크롤 막대를 수정하여 창 모양을 사용자 지정할 수 있습니다. 세로 스크롤 막대의 경우 막대의 너비와 방향 화살표의 높이를 변경할 수 있습니다. 가로 스크롤 막대의 경우 막대의 높이와 방향 화살표의 너비를 변경할 수 있습니다. 가로 및 세로 스크롤 막대 모두의 배경색을 변경할 수도 있습니다.

FlatSB_SetScrollProp을 사용하면 플랫 스크롤 막대가 표시되는 방식을 사용자 지정할 수도 있습니다. WSB_PROP_VSTYLE 및 WSB_PROP_HSTYLE 속성을 변경하여 사용하려는 스크롤 막대 형식을 설정할 수 있습니다. 세 가지 스타일을 사용할 수 있습니다.

스타일 Description
FSB_ENCARTA_MODE 표준 플랫 스크롤 막대가 표시됩니다. 마우스가 방향 단추이나 엄지 위로 이동하면 스크롤 막대의 해당 부분이 3D로 표시됩니다.
FSB_FLAT_MODE 표준 플랫 스크롤 막대가 표시됩니다. 방향 단추 또는 엄지를 마우스로 가리키면 스크롤 막대의 해당 부분이 반전된 색으로 표시됩니다.
FSB_REGULAR_MODE 일반 비플랫 스크롤 막대가 표시됩니다. 특별한 시각 효과는 적용되지 않습니다.

 

플랫 스크롤 막대 제거

창에서 플랫 스크롤 막대를 제거하려면 UninitializeFlatSB 함수를 호출하여 창에 핸들을 전달합니다. 이 함수는 런타임에 창에서 플랫 스크롤 막대만 제거합니다. 창이 제거될 때 이 함수를 호출할 필요가 없습니다.