*CDC::SetWindowExt()
 Remarks - device context 에 연관된 윈도우의 x, y 범위를 설정

*CDC::SetViewportExt()
 Remarks - device context의 viewport의 x, y 범위 설정

논리적인 좌료를 디바이스 좌표로 출력할때 어떻게 출력할 것인지 비율을 결정
MM_ISOTROPIC 모드로 설정시 SetWindowExt 를 SetViewportExt 부르기 전에 호출해야한다

CClientDC dc(this);
dc.SetMapMode(MM_ISOTROPIC);
dc.SetWindowExt(1000, 1000);
dc.SetViewportExt(100, 100);
// 디바이스 좌표로 100x100 으로 나타내는 것을 논리좌표 1000x1000으로 설정

CClientDC dc(this);
dc.SetMapMode(MM_ISOTROPIC);
dc.SetWindowExt(1000, 1000);
dc.SetViewportExt(100, -100);
// 부호 반대면 y좌표가 아래로 내려갈때 값이 감소

MM_ISOTROPIC : 논리 좌표계의 가로, 세로 비율이 같다
MM_ANISOTROPIC : 논리 좌표계의 가로, 세로 비율이 다르게 설정될 수 있다.
즉, MM_ISOTROPIC 에서는 원을 그리면 항상 원이지만...
MM_ANISOTROPIC 에서는 원을 그려도 타원으로 나올수 있다.

* CWnd 클래스의 멤버 함수는 모두 디바이스 좌표를 사용
* CDC 클래스의 멤버 함수는 모두 논리 좌표를 사용

Posted by 케이피