OS/Windows API

#4 Windows API 윈도우 작업영역 지정

VallistA2014. 8. 25. 15:37

Win32 API에서는 여러가지 기능을 제공하는데, 그 기능중에 하나인 윈도우 작업 영역 지정에 대해서 알아보겠습니다.


원래 보통 윈도우에서 크기 설정을 할 때는 CreateWindow를 쓰게 됩니다.


	hWnd = CreateWindow(D_GAME_NAME, D_GAME_NAME, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, D_SCREEN_XPOS, D_SCREEN_YPOS, D_SCREEN_WIDTH, D_SCREEN_HEIGHT, NULL, NULL, hInst, 0);


요로코놈 말이죠.


근데 실제로 들여다보면 우리가 1024, 768이라고 지정을해서 윈도우를 만들었지만 사용하는 윈도우의 크기는 그 윈도우에 맞지가 않습니다.

왜 일까요?


CreateWindow로 생성을 하게되면 우리의 작업영역은 위에 뜨는 최소화, 최대화, 종료 버튼이 있는 틀 사각형과 합쳐진 크기로 생성되기 때문이죠.

그렇다면 이 것을 해결할 방법이 없을까요?


그래서 API에서는 AdjustWindowRect라는 것을 지원합니다.


AdjustWindowRect( Rect 구조체의 포인터형, 윈도우 스타일, 메뉴 여부 );


AdjustWindowRect(&Rect, WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, false);


쉽게 요로코놈 써주시면 되겠습니다.

그렇게 얻어온 Rect에 우리는 크기를 정해주어야 겠죠?


크기를 정해주는 함수도 지원합니다.


SetWindowPos( 핸들 , NULL , 변경할 위치 X, 변경할 위치 Y, 변경할 사이즈 가로크기, 변경할 사이즈 세로크기, 플레그);


해주고 Rect 각각의 값에 맞춰서 SetWindowPos를 해주시면 정확해 집니다.

'OS > Windows API' 카테고리의 다른 글

#6 Windows API Timer  (1) 2014.08.26
#5 Windows API 게임의 기본 구조  (0) 2014.08.26
#4 Windows API 윈도우 작업영역 지정  (0) 2014.08.25
#3 Windows API DC란 무엇인가?  (1) 2014.08.20
#2 Windows API의 시스템 알아보기  (0) 2014.08.20
#1 Windows API 소스 분석  (3) 2014.08.20

댓글

댓글쓰기 폼

VallistA

병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.

자고 싶습니다. ㅠㅠ

페이스북    :: 링크
카카오톡    :: kingbye1
Github      :: 링크

궁금한점 문의 주시면 답변드리도록 하겠습니다

VISITED

Today : 56

Total : 408,137

SNS

  • 페이스북아이콘
  • 카카오톡아이콘
  • 트위터아이콘