티스토리 뷰
GetWindowRect
GetClientRect
ScreenToClient
MoveWindow....등등등...
항상 복잡하다..
이제 SetWindowPos같은건 잘 안 쓰고 MoveWindow를 잘 쓰니깐 얘를 설명하면
0,0으로 이동 시키면 현재 프로그램의 최 좌측 상단에 달라 붙는 다는 것이다.
그리고 width랑 height까지 바꿔버리니까 주의해야 한다.
GetWindowRect를 하면 현재 화면 전체에서의 컨트롤 위치를 가져온다.
이놈을 이제 ScreenToClient 해주면 ('화면 전체'에서 '클라이언트의 좌표')로 바꿔주는 것이다.
즉 MoveWindow를 써줄려면 다음과 같은 순서로 진행해야한다.
CWnd* pObject = this->GetDlgItem( IDC_BUTTON1 );
CRect rect;
pObject->GetWindowRect( rect ); //윈도우 좌상단을 0, 0으로 해서 좌표 가져오기
ScreenToClient( rect ); //가져온 좌표를, 프로그램의 좌 상단이 0, 0이 되도록 하는 좌표로 변경
pObject->GetWindowRect( rect ); //윈도우 좌상단을 0, 0으로 해서 좌표 가져오기
ScreenToClient( rect ); //가져온 좌표를, 프로그램의 좌 상단이 0, 0이 되도록 하는 좌표로 변경
rect.top = rect.top + 4;
rect.bottom = rect.bottom + 4;
pObject->MoveWindow( rect, TRUE );
rect.bottom = rect.bottom + 4;
pObject->MoveWindow( rect, TRUE );
그렇다면 다음의 코드를 보자
CWnd* pObject = this->GetDlgItem( IDC_BUTTON1 );
CRect rect1, rect2;
pObject->GetClientRect( rect1 );
ClientToScreen( rect1 );
pObject->GetWindowRect( rect2 );
pObject->GetClientRect( rect1 );
ClientToScreen( rect1 );
pObject->GetWindowRect( rect2 );
위 프로그램을 돌리고 나면 rect1과 rect2의 값은 같을까 다를까?
결과는.. 다르다 -.-
그래서 난... ClientToScreen은 뭘 어떻게 써먹는지 도저히 모르겠다......
아는 분 있으면 알려주시면 감사하겠습니다!!!
'Development > Windows' 카테고리의 다른 글
[TroubleShooting/MFC] Double Buffering을 구현하였는데도 깜빡이는 문제 (0) | 2012.02.24 |
---|---|
[MFC] 다이얼로그 배경 투명하게 만들기 (0) | 2012.02.23 |
[MFC] Double Buffering 더블 버퍼링 사용하기 (0) | 2012.02.19 |
MFC로 구현한 옵져버 패턴(옵저버 패턴)Observer 기본 뼈대 (0) | 2012.02.18 |
[MFC] 아이콘이 안바껴요. 아이콘 바꾸기! (0) | 2011.09.21 |
[MFC] Temp 폴더 경로 얻어와서 새 파일 이름 만들기 (0) | 2011.08.29 |
[MFC] 리소스가 꼬이는 문제 (0) | 2011.08.19 |
[MFC] 그림의 아래에 가로로 스크롤바를 달았을 경우 적당한 ScrollBar의 Size (1) | 2011.08.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- API
- kering
- algorithm
- C++
- it
- AWS
- Troubleshooting
- 리눅스
- winapi
- Python
- C
- linux
- 프로그래밍
- gcc
- java
- source
- android
- jni
- MFC
- jni강좌
- 음악
- 안드로이드
- Cloud
- Quiz
- db
- database
- NDK
- Visual C++
- driver
- 드라이버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함