MFC란?
- 윈도우 어플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리
- 프레임워크 제공
- Win32 API 위에 구축되었고 구조적 요소와 공통 구성요소만 포함
- 개발자는 윈도우 시스템 내장 기능을 직접 사용가능
- 장점
- 개발시간 단축, 이식성이 강한 코드 작성가능
- 강력한 사용자 인터페이스를 지원
- 쉬움
- 표기법
- 헝가리안 표기법
- 클래스는 C로 시작
- 여러단어가 클래스 이름 → 단어별로 첫글자 대문자
- 멤버 변수는 ‘m_’ 으로, 멤버 함수는 ‘대문자’로 시작
- 전역 함수는 ‘Afx’ 접두어 붙음
MFC 구조
- SDI : Single Document Interface(단일 문서 기반)
- 한개의 도큐먼트 프레임 윈도우만 사용
- 4개의 클래스를 가진다 : CWinApp, CFrameWnd, CView, CDocument
- Templete : 윈도우로 출력되는 형태
- Main Frame : 윈도우 외곽 경계, 메뉴,툴바, 상태바
- View Window : 실제 화면처리, 문자, 그래픽
- Document : 디스크에서 데이터를 읽고 저장
- MDI : Multiple Document Interface(여러 문서 기반
- 애플리케이션 인스턴스 안에 여러 개의 도큐먼트 프레임 윈도우를 사용
- 5개의 클래스 :
CWinApp, CMDIFrameWnd, CMDIChildWnd, CView, CDocument
- Main Frame 안에 template
- 여러 개의 SDI 형태
MFC 애플리케이션 마법사
기본적인 프로젝트를 생성 해주고 그 안에 필요한 클래스 생성
코딩 시간을 절약해 빠른 프로젝트 완성
Project Workspace

솔루션 탐색기 : 소스 파일, 헤더 파일, 자원 파일
MFC Application Architecture

CObject ( 최상위 클래스 )
- 메모리에 클래스를 절정하는 기능
- 클래스를 할당하기 위한 new 연산자 오버로딩
- 클래스의 기능과 종류를 알 수 있는 함수가 있음
- IsSerializable() : 현재 클래스가 디스크에 저장기능 있는지 없는지
- AssertVaild() : 현재 클래스가 유효한 함수인가
- Dump() : 현재 클래스의 상태를 확인하는 함수
CCmdTarget 클래스