최호성님의 VISUAL C++ 2008 MFC 윈도우 프로그래밍을 학습한 뒤 정리한 내용입니다.
CWinApp 클래스는 CObject > CCmdTarget > CWinThread > CWinApp 순서로 계층 관계를 갖고 있습니다.
CWinApp 클래스 멤버
- m_hInstance 현재 응용 프로그램의 인스턴스 핸들
- m_lpCmdLine 프로그램 실행시 명령줄 정보
- m_pszAppName 응용 프로그램의 제목에 해당하는 문자열 포인터
- m_pszExeName 빌드한 실행 파일에서 확장자를 제외한 파일명
CWinApp 클래스 함수
- Run() 함수가 호출되는 시점이 메시지 루프 시작 시점. Run() 메서드가 반환하면 응용 프로그램은 종료됨.
- InitInstance() 메서드는 응용 프로그램이 초기화되는 시점에서 호출. 다른 메서드들과 달리 대부분 재정의 되어 있으며, 직접 수정도 가능. 응용 프로그램의 윈도우를 등록, 생성하는 역할을 함.
- ExitInstance() 메서드는 InitInstance() 메서드와 반대로 응용 프로그램 종료시 호출.
- 프로그램 시작과 동시에 메모리를 할당한다든지 시스템 리소스를 할당받아야 한다면 이런 코드는 InitInstance()에 넣고 반환하는 코드는 ExitInstance()에 넣는 것이 보편적