개발자 '쑥말고인절미'
[MFC] SetWindowPos(), MoveWindow() 본문
간단 요약
- 두 메소드 모두 윈도우의 위치와 크기를 설정할 수 있지만, SetWindowPos()는 더 많은 옵션을 제공, MoveWindow()는 좀 더 단순한 작업에 적합하다.
- SetWindowPos() : 윈도우의 위치, 크기, Z 순서, 기타 속성까지 세부적으로 제어할 수 있는 유연한 함수이고, 다양한 플래그를 통해 동작을 세밀하게 제어할 수 있다.
- MoveWindow() : 윈도우의 위치와 크기만 설정하는데 사용되며, 다른 속성은 변경하지 않는다. 상대적으로 간단한 작업에 적합하다.
SetWindowPos()
- 윈도우의 위치와 크기를 설정하며, 윈도우의 Z 순서(Z-order)와 같은 추가 속성도 제어할 수 있다.
- 위치, 크기 외에도 Z 순서, 윈도우 스타일 등의 속성을 변경할 수 있다.
- 윈도우가 보이는지, 보이지 않는지 등 다양한 속성을 제어하는 데 유용하다.
- 아래는 함수 원형에 대한 설명.
BOOL SetWindowPos(CWnd* pWndInsertAfter
, int x
, int y
, int cx
, int cy
, UINT nFlags);
/*
// 파라미터 설명
CWnd* pWndInsertAfter
: 윈도우의 Z 순서를 제어한다.
: HWND_TOP, HWND_BOTTOM, HWND_TOPMOST 등을 사용해 앞이나 뒤에 위치하도록 할 수 있다.
int x, int y
: 윈도우의 새로운 좌표(화면 좌표)이다.
int cx, int cy
: 윈도우의 새로운 너비와 높이이다.
UINT nFlags
: 윈도우의 동작을 제어하는 플래그이다.
: ex) SWP_NOSIZE는 크기를 변경하기 않고, SWP_NOMOVE는 위치를 변경하지 않도록 할 수 있다.
*/
MoveWindow()
- 윈도우의 위치와 크기를 설정한다.
- Z 순서나 다른 속성은 제어할 수 없고, 위치와 크기만 변경할 수 있다.
- bRepaint 옵션은 윈도우를 즉시 다시 그릴지 선택할 수 있다.
BOOL MoveWindow(int x
, int y
, int nWidth
, int nHeight
, BOOL bRepaint = TRUE);
/*
// 파라미터 설명
int x, int y
: 윈도우의 새로운 좌표(화면 좌표)이다.
int nWidth, int nHeight
: 윈도우의 새로운 너비와 높이이다.
BOOL bRepaint
: 윈도우를 다시 그릴지 여부를 결정한다.
: TRUE일 경우, 크기나 위치가 변경된 후에 윈도우를 다시 그린다.
*/
'STUDY > C++ & MFC' 카테고리의 다른 글
[C++] InvalidateRect()와 UpdateWindow() (1) | 2024.10.04 |
---|---|
[MFC]GetWindowRect(), GetClientRect(), ScreenToClient() (0) | 2024.08.27 |
[C++] nullptr (0) | 2024.08.12 |
[MFC] CMainFrame* pMain = (CMainFrame*)AfxGetMainWnd(); (0) | 2024.08.11 |
[C++] 헤더파일 import 하지않고 포인터 사용해서 클래스 간 메소드 참조하기 (0) | 2024.08.07 |