프로젝트 생성시 옵션설정에 따라,

공통적으로 존재하는 3개의 클래스.

1. App

2. MainFrame

3. View

 

C#(WinForm)

C(WinAPI)

C++(MFC)

어떤것으로 짜든, windows api를 사용하게 됨

이것이 하드웨어로 연결

 

CAPP: 전역데이터 함수 관리. 화면 출력과는 크게 관계 없음.

CView: 윈도우의 view영역 관리.

CMainFrame: 그 외 나머지.(예를 들어 상태 표시줄 관리는 이 클래스에서 가능)

 

CAPP → CMainFrame → Cview 순으로 실행되고, 실제 가장 많이 사용되는 것은 CView이다.

 

두 개의 클래스를 동시에 상속받고자 할 때

1. C#에서 지원하지 않는 다중상속을 지원한다.

2. 하나씩 상속받은 두 개의 클래스를 생성하고, 또 다른 클래스를 만들어 하나는 상속, 하나는 호출하여 사용한다.

 

■ MFC의 기본클래스 4개

보이는 클래스-CView, CDocument

보이지 않는 클래스-CAPP, CMainFrame

 

■ 메시지펌핑

메시지 펌핑(MFC)-스레드를 돌려 계속 돌게하고 데이터가 있을때마다 가져오게 하는 것

(WinAPI에서는 메시지 루프와 같은 기능)

 

■ MFC에서의 메시지 처리 루틴(다음시간)

 

ex)

BITMAP파일(정보구조체와 값구조체로 구성)

비트맵파일을 불러오는 함수는 어느 클래스에?

View vs. Document(여러개의 그림파일을 동시에 불러올 수 있음)

 

■ 같은 기능이라도 어떤 프로그램이냐에 따라 구현되어야 하는 클래스가 다르다.

프로그램의 흐름(flow)에 따라 이벤트 발생지점을 파악하여 적절한 클래스에 함수를 구현해 주어야 한다.

 


Posted by 마마필로 :