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 : 클라이언트 영역 다시그릴지 여부