15
WINDOWS 메메메 메메메메메 메메 메메 메메 메메메메 메메 메메 메메메

Windows 메시지 프로그래밍

Embed Size (px)

DESCRIPTION

NHN NEXT 강의 자료

Citation preview

Page 1: Windows 메시지 프로그래밍

WINDOWS 메시지 프로그래밍게임 제작 실습 프로젝트 보충 자료

박민근

Page 2: Windows 메시지 프로그래밍

Console 프로그래밍

Page 3: Windows 메시지 프로그래밍

Console 프로그래밍 진행

Page 4: Windows 메시지 프로그래밍

Console 프로그래밍 진행

순차적 프로그래밍

Page 5: Windows 메시지 프로그래밍

만약 유저가 입력을 하지 않으면 ??

입력이 들어올때까지 무한 대기

게임의 흐름이 멈춘다

Page 6: Windows 메시지 프로그래밍

Windows 프로그래밍

유저 입력( 메시지

큐 )

메시지 가져오기

메시지변환

메시지프로시저

게임 업데이트

화면 렌더링

프로그램 / 게임 초기화

프로그램 / 게임 종료

메시지 루프

Update()

1 Frame

무한루프

Page 7: Windows 메시지 프로그래밍

Windows 프로그래밍

Page 8: Windows 메시지 프로그래밍

Windows 프로그래밍

Page 9: Windows 메시지 프로그래밍

메시지 루프• 메시지 큐에서 메시지를 가져

온다• 메시지 큐에 메시지가 없으면

곧바로 TRUE 반환

• 윈도우 메지지를 처리가 편한 메시지로 변환 WM_KEYDOWN -> WM_CHAR

• 메시지를 메시지 프로시저에 보내기

Page 10: Windows 메시지 프로그래밍

메시지 프로시저

Message 윈도우 메시지 ID

wParam 메시지에 따른 파라미터

lParam 메시지에 따른 파라미터

파라미터에 들어오는 값은 메시지마다 다르다 . MSDN 참조

Page 11: Windows 메시지 프로그래밍

Ex) 프로그램의 종료 처리종료 버튼 클릭

WM_DESTROY 메시지

WM_DESTROY 처리

•윈도우 종료 처리PostQuitMessage(0)

종료 처리를 하지 않는다면 어떻게 될까 ?

Page 12: Windows 메시지 프로그래밍

그럼 윈도우 메시지는 어떤 종류들이

있을까나 ?

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=vs.85).aspx#windows_messages

Page 13: Windows 메시지 프로그래밍

실습 ) 방향키로 윈도우 이동

WM_KEYDOWN 키가 눌러지면 발생되는 윈도우 메시지 • wParam : 입력된 키보드 값 A-Z, Virtual Key Codes (VK_) (MSDN)

WM_KEYUP 키가 눌렀다가 떼어지면 발생되는 윈도우 메시지 • wParam : 입력된 키보드 값 A-Z, Virtual Key Codes (VK_) (MSDN)

Page 14: Windows 메시지 프로그래밍

실습 ) 방향키로 윈도우 이동

GetWindowRect(HWND, LPRECT)윈도우의 크기 (RECT) 를 반환 한다 .

MoveWindow(HWND, x, y, width, height, Redraw)윈도우의 크기 (RECT) 를 반환 한다 .

Page 15: Windows 메시지 프로그래밍

메시지의 연동