2014-03-03 1 views
0

배경색이 검은 색으로 응용 프로그램을 만들고 있는데, 물론 구성 요소 인 tscrollbar는 시스템 (그리드, 패널 등)이 나타내는 색보다 시스템의 기본 색을 둡니다. 변경할 방법이 있습니까? 어쩌면 일부 시스템 메시지를 가져올 수 있습니다 ... VCL과 함께 XE2를 사용하고 있습니다. 감사합니다.구성 요소의 TScrollbar의 기본 색상을 변경할 수 있습니까?

+0

보기 [Sertac] (http://stackoverflow.com/users/243614/serertac-akyuz)의 대답은 [여기] (http://stackoverflow.com/a/14734945/62313) – SimaWB

답변

2

scrollbars의 색상을 직접 변경하는 것과 같은 것이 없습니다. 당신은 스크롤바 자신을 그릴 수 있습니다. 이렇게하려면 WM_NCPAINT 메시지를 처리하는 스크롤 막대 (엄지 손가락, 슬라이더 및 화살표)의 각 요소를 그려야하며 WM_NCHITTEST, WM_NCCALCSIZE, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP을 처리하는 스크롤 막대를 적절하게 업데이트하기 위해 스크롤 막대와 사용자 상호 작용을 추적해야합니다 , WM_VSCROLL, WM_HSCROLL 및 기타. 따라서이 모든 작업을 피하는 가장 좋은 방법은 Delphi XE2에서 소개 된 VCL 스타일을 사용하는 것입니다. 이렇게하면 VCL 스타일 파일을 수정하여 원하는대로 스크롤 막대를 그릴 수 있습니다. 이제 당신이 어려운 방법으로 이동하려는 경우 VCL Style Utils 프로젝트의 일부인 TSysScrollingStyleHook 클래스를 시도해 볼 수 있으며 스크롤바를 그리는 방법을 보여줄 수 있습니다.

1

비 클라이언트 영역의 페인트 메시지 인 Windows WM_NCPAINT에 응답하는 사용자 지정 구성 요소를 만들어야합니다.

here에는 유용 ​​할 수있는 스크롤 막대 사용자 지정 그림이 포함되어 있습니다.

+0

그 작동합니까 주제가 있습니까? –

관련 문제