Visual Studio .NET 을 사용하여 프로그램을 만들어보면, 전체 프로그램의 전체 프레임은 윈도우 테마를 따르지만, 내부 컨트롤들은 여전히 구식 스타일을 그대로 사용한다. 간단한 작업만으로 모든 컨트롤들에게 윈도우 비주얼 스타일을 적용할 수 있기때문에, 5분만 투자하여 멋진 프로그램을 만들어보자.

지금부터 설명할 내용들은 이미 codeproject 또는 MSDN 사이트에서 이미 찾을 수 있는 내용들이지만, 아무래도 한글이 이해하는데 빠르지 않을까 싶다. 보다 많은 정보를 원한다면 아래 링크를 따라가보기 바란다.

http://www.codeproject.com/cpp/xpstylemfc.asp
http://www.codeproject.com/cpp/AddXpStyle.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/xptheming.asp

이제부터 하나하나 설명하도록 하겠다. 여기서 설명은 다이얼로그 기반의 프로그램을 실제로 하나 만들어보면서 진행하도록 하겠다.

우선 XPStyle 이라는 제목의 프로젝트를 하나 생성하자. 당연히 'MFC 응용프로그램' 항목을 선택하고, MFC 응용 프로그램 마법사에서는 응용 프로그램의 종류를 '대화 상자 기반'을 선택하도록 하자. 아무래도 컨트롤 올리기가 편하니까... 그리고, 중요한 것은 아래 그림과 같은 고급 기능 탭이다. 그림을 보자.


오른쪽 항목에서 맨 아래쪽 '공용 컨트롤 매니패스트' 가 선택이 되어있어야 한다. 기본적으로 선택이 되어있으므로 따로 건들이지만 않으면 된다. 이제 [마침] 버튼을 클릭하여 프로젝트를 생성한다.

아마 빈 대화상자를 편집할 수 있는 화면이 나타날 것이다. 왼쪽의 리소스 뷰의 [XPStyle.rc] 에서 마우스 오른쪽 버튼을 클릭하여 [리소스추가...] 를 선택하거나 또는 상단의 메뉴에서 [프로젝트]->[리소스추가...] 를 선택하여 다음과 같은 창이 나오게 하자.


오른쪽 버튼들 중에서 세번째 [사용자지정...] 버튼을 눌러서, 새 사용자 지정 리소스에 숫자 24를 입력하고 [확인] 버튼을 누른다.


그러면 위와 같이 RT_MANIFEST 라는 항목을 새로 편집하는 창이 나타나게 된다. 여기에 XML 문장을 입력해야한다. XML 문장을 완전히 새로 쓰는 것은 아니고, 솔루션 탐색기에서 XPStyle.manifest 파일에 적혀있는 내용을 그대로 복사해서 옮기면 된다. 아래 그림을 보자.


위 그림에서 오른편의 XML 문장을 전체 선택하여 copy 해서 아까 리소스 편집기로 다시 가서 paste 한다. 결과 그림은 다음과 같다.


마지막으로, 새로 추가하였던 리소스의 아이디(ID)를 IDR_RT_MANIFEST1 에서 숫자 1로 변경한다.


이로써 모든 작업이 끝났다. 이제 프로그램을 빌드하고 실행해보면 버튼과 같은 컨트롤에도 windows visual style 이 적용된 것을 확인할 수 있을 것이다.

아래 샘플 프로그램의 프로젝트 파일을 다운받아서 테스트해보기 바란다.



Posted by kkokkal
: