윈도우에는 스크린 영역 좌표와 클라이언트 영역 좌표가 있다.


스크린 영역 좌표: 실제 스크린(모니터)상에서 윈도우 객체가 위치하는 좌표.

클라이언트 영역 좌표: 윈도우 객체 속에 존재하는 좌표.


A 윈도우 객체 클라이언트 영역에 B윈도우가 존재할 경우에,


-B윈도우의 스크린 좌표

B윈도우->GetWindowRect(&rect);


-B윈도우의 클라이언트 좌표

CPoint point;

point.x = rect.left; // B윈도우의 x 스크린 좌표

point.y = rect.top; // B윈도우의 y 스크린 좌표

A윈도우->ScreenToClient(&point); // 스크린 좌표를 A윈도우 클라이언트 영역으로 변환함.


Win32 와 MFC 모두 위의 함수를 가지고 있다.

Win32에서는 윈도우의 기준은 HWND를 사용하고 나머지는 같다.

+ Recent posts