비스타 테마 리스트 컨트롤 만들기

@codemaru · July 31, 2011 · 2 min read

                   md 0

비스타에서 리스트 뷰는 상당히 고급 스런 디자인을 하고 있습니다. 특히나 선택 영역은 과거의 그것과는 비교가 불가할만큼 고급스럽죠. ㅎ 저런데서 그냥 푸른색 칠해진 리스트 뷰를 보면 정말 싼티나 보입니다. 대부분의 개발자가 저도 그랬고, 리스트 뷰가 비스타에 가면 그냥 자연스럽게 저렇게 그려질거라 생각합니다. 커먼 컨트롤이 업그레이드 되면서 그렇게 됐겠지 하는 생각을 하죠. 그런데 천만에 말씀, 만만에 콩떡입니다. 매니페스트를 적용한 프로그램의 리스트도 저렇게 고급스럽게 그려지지 않죠. 그렇다면 도대체 이 마법 같이 아름다운 리스트 컨트롤은 어떻게 해야 만들 수 있는 걸까요?

물론 그렇게 어렵지는 않습니다. ㅋㅋ~ 바로 마법 같은 함수가 있기 때문이죠. SetWindowTheme라는 함순데요. 여러분이 사용하는 리스트 컨트롤에 대고, SetWindowTheme(리스트 컨트롤 핸들, _T(“explorer”), NULL); 하는 순간 싼티나던 리스트 컨트롤이 탐색기의 그것과 똑같아지는 기적을 경험하게 될겁니다. 안된다구요? 네. 아마 커스텀 드로나 오너 드로를 사용하고 계신가 보군요. 그렇다면 좀 더 복잡하지만 DrawThemeBackground라는 함수를 사용하셔서 배경을 그리면 되겠습니다. 참고로 이 두 함수를 사용하기 위해서는 uxtheme.h 파일과 uxtheme.lib 파일이 필요합니다.

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중