2010. 10. 27. 10:55

Problem of Textout function with zoom

SetGraphicsMode(dc, GM_ADVANCED);
SetWorldTransform

위의 함수를 사용하면 쉽게 화면 zoom 을 구현할 수 있다.

하지만 Text 출력 시 미묘한 문제가 발생된다.

위의 사진이 100% 아래는 108 % 인 경우이다.

자세히 보면 100%인 경우는 0의 위치가 균일하나 108%는 첫번째 0 과 두번째 0 이 붙여 있고 세번째 0 은 떨어져 있다.

모양뿐 아니라 실제 문제는 2 경우 108%인 경우 1px 더 큰 가로를 가진다( font 에 따라 문제가 발생하지 않는 경우도 있다.)
GetCharWidth 함수 등을 이용하여 Text Drawing 의 크기를 정확하게 해야 할 필요가 있는 application에서는 108%인 경우 1px이 안 보이는 현상이 발생가능하다.

GM_ADVANCED 인 경우 Text 출력에 대한 몇가지 버그 사항들에 대한 자료는 있지만 위 현상에 대한 글을 아직 찾지 못했다.