원형 | BOOL SetViewportOrgEx(HDC hdc, int X, int Y, LPPOINT lpPoint); |
인수 |
▶hdc : 대상 DC의 핸들 ▶X, Y : 뷰포트의 새 원점 좌표 ▶lpPoint : 이전의 원점을 돌려받기 위한 포인터이되 이전 원점이 필요없을 경우 NULL로 지정한다. |
리턴 | 성공하면 0이 아닌 값을 리턴하며 에러 발생시 0을 리턴한다. |
설명 |
뷰포트의 원점을 (X,Y)로 변경한다. 뷰포트란 물리 좌표가 사용되는 영역이며 실제 화면에 보이는 좌표 영역이다. 이에 비해 윈도우는 논리 좌표가 사용되는 영역이며 GDI 함수가 출력에 사용하는 영역이다. 이 두 영역의 원점을 적절히 조정함으로써 그래픽 함수가 인식하는 좌상단의 원점 좌표를 변경할 수 있다. 보통 물리 좌표를 사용하는 뷰포트의 원점을 조정하는 것이 더 편리하다. 다음 예제는 뷰포트의 원점을 120,120으로 변경한다. LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch(iMessage) { case WM_PAINT: hdc=BeginPaint(hWnd, &ps); SetViewportOrgEx(hdc,120,120,NULL); Ellipse(hdc,-100,-100,100,100); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } 타원을 -100,-100에서부터 100,100좌표까지 그렸지만 원점이 120,120으로 옮겨졌으므로 이 원의 전체가 보이게 된다.
|
참고함수 | SetWindowOrgEx : 윈도우의 원점을 변경한다. |
플렛폼 | 95이상 |
본문참조 |
written by http://www.winapi.co.kr
|