개발자 '쑥말고인절미'
쑥말고인절미
« 2025/08 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
|
관리 메뉴
개발자 '쑥말고인절미'
[MFC]GetWindowRect(), GetClientRect(), ScreenToClient() 본문
STUDY/C++ & MFC
[MFC]GetWindowRect(), GetClientRect(), ScreenToClient()
쑥말고인절미
2024. 8. 27. 23:40
간단 요약
- 세 메소드 모두 윈도우 컨트롤의 위치와 크기를 다루는 함수이다.
- GetWindowRect() : 윈도우의 전체 영역을 화면 좌표로 가져온다.
- GetClientRect() : 클라이언트 영역의 크기만을 가져오며, 좌표는 (0, 0)에서 시작하는 클라이언트 좌표이다.
- ScreenToClient() : 화면 좌표를 클라이언트 좌표로 변환한다.
GetWindowRect()
- 윈도우의 외부 직사각형(전체 영역)의 좌표를 가져온다.
- 화면(Screen) 좌표계. 즉, 화면의 왼쪽 위 모서리를 (0, 0)으로 하는 절대좌표
- 윈도우의 전체 크기와 위치를 반환하는데 타이틀바, 테두리, 메뉴 등 모든 외부 요소가 포함된다.
GetClientRect()
- 클라이언트 영역(클라이언트 직사각형)의 좌표를 가져온다.
- 클라이언트(Client) 좌표계. 즉, 클라이언트 영역의 왼쪽 위 모서리를 (0, 0)으로 하는 상대좌표
- 클라이언트 영역은 윈도우의 내부 영역으로, 메뉴 바나 스크롤 바를 제외한 순수하게 사용자가 그릴 수 있는 영역이다.
- 이 메소드는 항상 (0, 0)에서부터 시작하는 좌표를 반환하며, 위치보다는 크기를 확인할 때 주로 사용된다.
ScreenToClient()
- 화면 좌표를 클라이언트 좌표로 변환한다.
- 입력으로 받은 화면 좌표를 기준으로 해당 점이 클라이언트 영역 내에서 어디에 위치하는지를 계산해준다.
- 화면(Screen) 좌표계를 클라이언트(Client) 좌표계로 변환할 때 사용된다.
- ex) 마우스 클릭 이벤트에서 화면 좌표로 전달된 클릭 위치를 현재 윈도우의 클라이언트 영역에서 어디에 위치하는지를 알아내기 위해 사용된다.