WIN32API FrameWork/코드별 설명 개별저장(검색용)
RECT 구조체 , AdjustWindowRect , MoveWindow
hyrule
2022. 5. 3. 15:04
< RECT >
사각형을 표현하기 위해서 지원하는 구조체이다.
left, top, right, bottom 값으로 이루어져 있다.
left와 top = 사각형의 좌측 상단 좌표
right와 bottom = 사각형의 우측 하단 좌표
두 점을 통해 직사각형을 그린다.
윈도우 크기를 표현하는 Rect 구조체를 하나 만들어준다.
RECT rc = { 0, 0, 1280, 720 };
< AdjustWindowRect >
위에서 지정한 크기만큼 클라이언트 영역의 크기로 잡기 위해서
필요한 실제 윈도우의 크기를 얻어온다.
* 1번 인자: 원하는 창의 크기가 저장된 주소(RECT 구조체)
* 2번 인자: 조절할 창의 기본 형태가 무엇인지 전달
* 3번 인자: 메뉴바 있는지 여부 전달
* 해당 인자들을 전달해 주면,
1번 인자에 전달한 주소에 2번 인자, 3번 인자의 특성에 맞게
조절된 사이즈를 반환한다.
* 밑의 코드를 지나서 중단점을 잡고 디버그 모드에 들어가서
rc값을 확인되면 변경된 값이 들어간 것을 확인할 수 있다.
RECT rc = { 0, 0, 1280, 720 };
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW,FALSE);
< MoveWindow >
얻어온 크기로 윈도우 창의 크기를 변경한다.
(hWnd, X좌표, Y좌표, 가로길이, 세로길이, 다시 그리기 여부)
디버그를 해 봤다면 알겠지만
rc값에 음수가 있을수도 있으므로 뺄셈을 통해 계산해주어야 한다.
RECT rc = { 0, 0, 1280, 720 };
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW,FALSE);
MoveWindow(m_hWnd, 50, 50, rc.right - rc.left, rc.bottom - rc.top, TRUE);