Win32 API with 나우캠퍼스

Win32 API 11강. 유용한 함수(1) 윈도우 관련 함수

코다람쥐 2022. 8. 19. 23:36

목차


1. 윈도우 관련 함수

2. 그래픽 관련 함수

3. 충돌 체크 함수

 

1. 윈도우 관련 함수

AdjustWindowRect()


클라이언트 크기를 기준으로 전체 윈도우 크기 재계산

▩ 함수의 원형

BOOL WINAPI AdjustWindowRect(
  [in, out] LPRECT lpRect, // RECT구조체의 주소
  [in]      DWORD  dwStyle, // MSDN문서 참조
  [in]      BOOL   bMenu // 메뉴표시 여부
);

 

▩ 주의 사항

- 클라이언트(300, 300)일 때는 (0, 0, 299, 299)로 설정

 

GetClientRect()


▩ 역할

- 클라이언트 크기 조사

 

▩ 함수의 원형

BOOL GetClientRect(
  [in]  HWND   hWnd,
  [out] LPRECT lpRect
);

hWnd : 윈도우 핸들

lpRect : RECT구조체 주소

 

▩ 클라이언트 영역 좌상단(0, 0)에서 시작

▩ 크기는 rect.right + 1, rect.bottom + 1로 해야 올바른 값이 나옴.

 

사용예시.

    case WM_PAINT:
        {
            RECT rect;
            char string[100];

            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            GetClientRect(hWnd, &rect);
            sprintf_s(string, "x size : %d, y size : %d", rect.right + 1, rect.bottom + 1);
            TextOut(hdc, 0, 0, string, strlen(string));
            
            EndPaint(hWnd, &ps);
        }
        break;

 

 

GetWindowRect()


▩ 역할

- 전체 윈도우의 크기를 조사

 

▩ 함수 원형

BOOL GetWindowRect(
  [in]  HWND   hWnd,
  [out] LPRECT lpRect
);

hWnd : 윈도우 핸들

lpRect : RECT구조체 주소

 

▩ 크기 계산

- rect.right - rect.left

- rect.bottom - rect.top

 

 

MoveWindow()


▩ 역할

- 윈도우의 위치와 크기 변경

 

▩ 함수 원형

BOOL MoveWindow(
  [in] HWND hWnd,
  [in] int  X,
  [in] int  Y,
  [in] int  nWidth,
  [in] int  nHeight,
  [in] BOOL bRepaint
);

hWnd : 윈도우 핸들

X : 옮겨질 x좌표

Y : 옮겨질 y좌표

nWidth : 가로길이

nHeight : 세로길이

bRepaint : 클라이언트 영역 다시그릴지 여부