Monthly Archive for 11월, 2009

HI DPI Mode지원을 위한 노가다.

지금은 UI 프로그램을 하고 있지는 않지만 Window 7이 나오면서 어쩌면 HI DPI Mode를 많이 쓰게 되지 않을까 하는 생각이 들더군요. 그래서 찾아 보니 MSDN에 Writing Guide가 잘 정리 되어 있었습니다. 물론 엄청난 UI 노가다를 요구하는 내용이지만 말이죠.

Writing High-DPI Win32 Applications
http://msdn.microsoft.com/en-us/library/dd464660(VS.85).aspx

내용을 간단히 말하면 DPI 값과 Screen Resolution 값을 통해서 폰트와 컨트롤들의 크기를 일일이 설정해줘야 한다는 내용입니다.

기존에 잘 쓰고 있더는 사이즈의 프로그램을 HI DPI를 지원하도록 바꿀려면 개발자분들이 정말 많은 노가다를 해야할꺼라 생각이 됩니다. ( 라이브러리화 되지 않은 환경에서 이 작업을 한다는건 거의 퇴사하라는 얘기와 다름 없겠죠 )

Declaring Managed Applications As DPI-Aware
: http://msdn.microsoft.com/en-us/library/ee308410(VS.85).aspx
: http://msdn.microsoft.com/en-us/library/ms633543(VS.85).aspx
: http://msdn.microsoft.com/en-us/library/ms701681(VS.85).aspx

그 아래쪽 내용을 보니 재미 있는것이 있더군요 Manifest를 수정해서 DPI모드를 적용 받지 않도록 하는 방법이더군요. ( 천만 다행이라 생각합니다. )

그래서 간단히 MFC Application에 해당 Manifest를 적용하고 HI DPI 모드에서 실행해 보았습니다.

HI DPI 모드에서 DPI-Aware 가 적용된 Application( Source Code )

HI DPI 모드가 적용되어 있다고 하더라도 원래의 크기 사이즈로 Application이 동작하더군요. !! 하지만 역시 캡션 및 테두리 부분은 그대로 HI DPI 모드가 적용되서 어색해 보이는 군요.

혹시나 HI DPI 모드가 고민이신 분들은 참고하시기 바랍니다.