본문 바로가기
Programming/Win_API

윈도우즈 API - 윈도우 창 관련 함수

by bbolmin 2012. 8. 23.

윈도우 생성

CreateWindow, CreateWindowEx, CreateDialog, DialogBox, MessageBox 등

 

- CreateDialog(HINTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc) : 대화상자를 만들고 바로 대화상자의 핸들값을 리턴 (모달리스형)

- DialogBox(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc) : 대화상자가 종료되어야 하지만 리턴 (모달형)

 

 

윈도우 파괴

DestroyWindow

 

- DestroyWindow(HWND hWnd) : WM_DESTROY 메시지 전달

 

윈도우 최소화

CloseWIndow

 

 

윈도우 위치, 크기 구하기

GetWindowRect, GetClientRect

 

- GetWindowRect(HWND hWnd, LPRECT lpRect),  : 윈도우의 위치와 좌표를 구하는 함수

- GetClientRect(HWND hWnd, LPRECT lpRect) : 작업영역의 크기를 구하는 함수

 

 

윈도우 위치, 크기 변경

MoveWindow, SetWindowPos, AdjustWindowRect

 

- MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint) : 윈도우의 위치, 크기 변경(XYWH방식)

- SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) : 윈도우의 위치, 크기, Z 순서 변경

- AdjustWindowRect(LPRECT lpRect, DWORD dwStyle, BOOL bMenu) : 타이틀바의 높이, 경계선 크기 등 더해줌.

 

 

여러 개의 윈도우 위치, 크기 변경

BeginDeferWindowPos, DeferWindowPos, EndeferWindowPos

 

- HDWP BeginDeferWindowPos(int nNumWindows)

- HDWP DeferWindowPos(HDWP hWinPosInfo, HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags)

- BOOL EndDeferWindowPos(HDWP hWinPosInfo)

 

 

윈도우 위치, 크기 구하기, 변경(2)

GetWindowPlacement, SetWidnowPlacement

 

- BOOL GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl)

- BOOL SetWindowPlacement(HWND hWnd, CONST WINDOWPALCEMENT *lpwndpl)

WINDOWPLACEMENT로 노멀, 최대, 최소화 좌표 컨트롤

 

 

윈도우 찾기

FindWindow, FindWindowEx, WindowFromPoint

 

- HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) : 찾은 윈도우 핸들 반환 

- HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow) : 차일드 윈도우를 검색

- HWND WindowFromPoint(POINT Point) : Point좌표에 있는 윈도우 핸들 반환