■ MFC(Microsoft Foundation Class)
: c와 c++로 만든 개체지향기반의 마이크로소프트웨어에서 만든 프레임웍
■ Document와 View
가장 큰 윈도우는 바탕화면(Window) → 표준윈도우(Window) → 대화상자(Dialog Box), 최소/최대화버튼이 없고, 대신 물음표가 있다) → Message Box → Control(확인버튼 같은 것)
□ Document:부모 윈도우의 클라리언트 영역. Document는 출력하지 않는다. 자식 윈도우의 출력사양을 결정해 준다
□ View:윈도우의 클라이언트 영역만을 의미(윈도우의 클라이언트 영역=MFC에서는 View). API로 보면 부모윈도우에 자식윈도우를 띄웠을 때, 클라이언트 영역만 있는 자식윈도우에 해당.
따라서, 자식윈도우를 하나 만드면 view가 1개, 자식윈도우를 두개 만드면 view가 2개
■ Application Frameworks
API는 정교한 조작(?)에 의해 개발해야 하기 때문에 생산 기간이 길다.
따라서 생명주기가 긴 장비 안에 들어가는 프로그램 개발에 주로 사용된다.(ATM, 자동차 내부 등)
지나치게 긴 개발 기간을 단축하기 위해 프레임웍을 생각.
프레임 웍 개발을 위해 AFX(Application Framework technology development group)를 만들고 AFX 1.0으로 개발.
이후 MFC라는 이름으로 개발됨.
MFC는 다운로드 할 필요없이(닷넷 프레임웍은 따로 설치가 필요) 윈도우즈 운영체제 내에 설치 되어 있으므로
윈도우즈 운영체제를 기반으로 한다면, MFC로 개발한 모든 프로그램은 실행 가능하다.
C++로 만든이유
객체 지향 언어이기 때문에.
객체 지향 언어에서만 숨기는 것(변수, 함수 등)이 가능하다.
C++은 C를 포함한다.
Win API와 MFC를 이용하면 윈도우 기반 OS에서 구동되는 모든 프로그램은 개발 가능 해진다.
MFC는 새로운 버전이 이전 버전을 다 포함한다.
.net Framework의 경우 운영체제의 버전에 상관없이 프레임웍의 버전만 수정해서 운영체제의 버전에 맞는 프레임웍을 설치해야 한다.
새로운 프레임웍 버전에서는 이전의 함수를 수정해 버린다.
반면, MFC는 이전 버전의 함수도 새 버전에 다 포함시켜 놓고, 운영체제의 버전을 체크하여 버전에 관계없이 실행할 수 있게 한다.
▶ MFC의 장점
윈도우 어플리케이션의 개발 기간 단축.
윈도우 기반 운영체제라면 별다른 설치 없이 이용 가능.
상위 버전이 이전 버전을 포함-버전 간 호환 가능.
■ MFC의 구성
1) 일반적인 용도를 위한 class
2) Exception-handling class: 예외 처리를 위한 함수 제공. 메모리/입출력 에러, OLE(Object Linking and Embeded)-프로그램 안에 다른 프로그램이 존재. 그런 프로그램의 데이타베이스에서 오는 에러 등의 처리를 위한 함수 제공.
3) Collection class
컬렉션을 사용하는 이유
소프트웨어에서 다루어야 하는 데이터의 양이 많아짐.
데이터의 크기가 커질때 문제점-원하는 데이터를 찾기가 어려워짐, 하나로 다룰 수 있는 데이타타입이 필요
이러한 문제점 해결을 위해 컬렉션 존재. 많은 양의 데이터를 다룰 수 있는 데이터타입을 만들 수 있음.
4) Dynamic string class
5) File class
6) Time class
7) 기타(CPoint, CSize, CRect 등)