Game Resource Tool을 쉽게 만들기 위해 MFC를 이용
MFC의 자세한 기능보다는 필요한 기능을 위한 역할
MFC 역시 Window Application이기 때문에, 기존의 DX에 Window Handle만 넘겨주고, 그 외에 Window설정을 수행하면 동일하게 작동할 수 있음
유일한 Window 객체
theApp을 통해 Window에 접근할 수 있음
Frame->View->Doc 구조로 이루어져 있음
CMainFrame* frame = (CMainFrame*)AfxGetMainWnd();
CView* view = frame->GetActiveView();
view->m_hWnd; // Window Handle
Window Procedure에서 처리하는 Message와 Event를 위해 함수가 제공 됨
클래스뷰->속성->메시지/이벤트를 통해 원하는 시점 처리 가능
각 작업 처리 전 필수적으로 수행해야 하는 작업이 있을 수 있으므로 수작업으로 직접 함수를 overriding하기 보다는 위 방식으로 접근하는 것이 좋음
CView::OnSize()를 통해 WM_size 메시지 처리 가능
CWinAppEx::OnIdle()을 통해 유휴작업 중 Frame-Render작업 처리 가능
단, OnIdle함수는 Message가 없는 중에는 처리가 되지 않으므로 항상 return true처리
MFC는 PCH를 사용하므로 MFC폴더에 추가되는 cpp는 모두 최상단에 #include "pch.h"필수
당연하다면 당연한 결과이긴 한데, MFC를 사용할 경우 Library에서 winMain이 정의되어있으면 명시적으로 선언한 winMain이 실행된다
MFC에서는 사용예정인 객체를 미리 초기화하는 것으로 보임. 단순히 nullptr로 생성 여부를 판단하면 문제가 발생