다음을 통해 공유


플랫 스크롤 막대

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

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

플랫 스크롤 막대스크린샷

메모

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

 

플랫 스크롤 막대 사용

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

시작하기 전에

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

창에 플랫 스크롤 막대 추가

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

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

스크롤 막대 속성을 업데이트하려면 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 속성을 변경하여 사용하려는 스크롤 막대의 유형을 설정할 수 있습니다. 세 가지 스타일을 사용할 수 있습니다.

스타일 묘사
FSB_ENCARTA_MODE 표준 플랫 스크롤 막대가 표시됩니다. 마우스가 방향 단추 또는 엄지 손가락 위로 이동하면 스크롤 막대의 해당 부분이 3차원으로 표시됩니다.
FSB_FLAT_MODE 표준 플랫 스크롤 막대가 표시됩니다. 마우스가 방향 단추 또는 엄지 손가락 위로 이동하면 스크롤 막대의 해당 부분이 반전된 색으로 표시됩니다.
FSB_REGULAR_MODE 일반 비플릿 스크롤 막대가 표시됩니다. 특수한 시각 효과가 적용되지 않습니다.

 

플랫 스크롤 막대 제거

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