본문 바로가기
코스웨어/15년 스마트컨트롤러

20151118 - WinAPI 일지 엄민웅 (6-5-가. CreateFont), 게임 만들기

by 알 수 없는 사용자 2015. 11. 18.
728x90
반응형


제 8 장. 대화상자

까지 CM님 없으실 때 각자 해보라고 하심.


CM님하곤 게임 만들기 고고 푸쉬푸쉬 같은 게임 만들꺼라고 하심. 


7-1-나. Button 까지 예제 소스 보고 실행 결과 확인 해보았었다.


20151118-1.zip

(택스트 예제 부분 프로젝트 일일이 새로 만들기 싫어서 윈프록 부분 주석 처리하고 다음 예제 하고 그랬습니다 ㅠㅠ)

-------------------------------------------------------------------------------------------------------------


게임 만들기. 


예전에 배운 메세지 맵 기법을 이용해서 윈프록 부분을 간단하게 만들었었다. 


MFC 같은거 나중 공부해 보면 거의 다 메세지맵 기법으로 구현 되어있다고 하셨던 걸루 기억.


switch (iMessage)

{

case WM_CREATE:

return 0;


case WM_KEYDOWN:

return 0;


case WM_PAINT:

return 0;


case WM_DESTROY:

return 0;


이런 식으로 스위치 케이스로 써야 했던 것을



해더파일에 구조체 선언

typedef struct _stMsgMap
{
  UINT uiMsg;
  LRESULT(*fp)(HWND, WPARAM, LPARAM);
} stMsgMap;


C소스에

구조체 배열 다음 같이 만들어주고

stMsgMap MSGMAP[] = {
                  {WM_PAINT, OnPaint },
                  {WM_KEYDOWN, OnKeydown },
                  {WM_DESTROY, OnDestroy },
                  {WM_CREATE, OnCreate },
                  {WM_NULL, 0}
                };



WndProc에 스위치 케이스문 대신

  stMsgMap *stpMap = MSGMAP;


  while (WM_NULL != (*stpMap).uiMsg )
  {
    if (iMessage == (*stpMap).uiMsg)
    {
      return ( ( (*stpMap).fp ) ( hWnd, wParam, lParam) );
    }
    ++stpMap;
  }


요렿게 쌔팅 해주면 으흠 각 함수 안에다가 우리가 해야 할일들 넣어주면 끝



내일 할꺼 매핑 기법 ㅋㅋ

728x90