728x90
Visual C++ 8강 MFC 프레임 워크
- 윈도우 응용프로그램들이 일관된 사용자 인터페이스를 가지고 있기 때문에 대부분의 프로그램에 공통적인 부분을 매번 일일이 코딩하는 것은 비효율이다. 그래서 MFC (Microsoft Foundation Class)는 대부분의 프로그램이 공통적으로 수행하는 기능들을 미리 구현하여 클래스 라이브러리로 제공하고 있는데 이를 프로그램의 뼈대, 즉 응용 프로그램 프레임 워크 (Application Framework) 라고 한다. 약어로 AFX라고 한다. 프로그램의 뼈대는 대부분의 프로그램에 공통적으로 필요한 기능들이 들어가 있기 때문에 이를 이용하면 쉽게 프로그램의 기본 틀을 생성할 수 있다.
- 메인 프레임은 윈도우 외곽 경계를 담당하면서 메뉴와 툴바, 상태바를 가지고 있다. 메인 프레임에서 하는 주된 기능은 뷰를 감싸면서 메뉴를 포함하여 메뉴의 이벤트를 얻는다. 그리고 그것은 툴바와 상태바를 자식 윈도우로 가지고 있는 프레임 형태의 윈도우이며 그 안에 뷰라는 윈도우가 있다. 이 윈도우는 실제 화면 처리를 담당하는 윈도우이며 문자출력, 그래픽 출력 등의 여러 형태를 바로 이 윈도우에서 수행한다.
- CDocument 란 데이터를 저장하는 기능을 가진 클래스이다. 윈도우 형태가 아닌 데이터를 저장하는 형태이다. 주로 데이터를 디스크에 저장했다가 필요할 프로그램이 디스크에 있는 데이터를 로드 한다. 이럴 때 담당하는 것이 CDocument 이다.
- CWnd는 윈도우라는 객체를 클래스로 구현한 것으로 다음과 같은 기능을 가지고 있다
- ① 윈도우를 만들고 이것을 화면에 출력하고, 새로운 윈도우에 부모 윈도우 또는 자식 윈도우로 설정하고
윈도우 스타일을 얻거나 받는 기능 - ② 윈도우의 크기, 위치, 상태, 문자, 좌표의 맵핑을 바꾸는 기능
- ③ 여러 메시지가 전달되었을 때 수행되는 해당 메시지 핸들러 함수들
- ④ 윈도우에 상자, 문자, 원, 도형, 비트맵 등 그래픽요소를 출력하는 기능
- ⑤ 현재 윈도우에서 대화상자 아이템이 설정되어 있을 경우 이 아이템들을 제어하는 기능
- ① 윈도우를 만들고 이것을 화면에 출력하고, 새로운 윈도우에 부모 윈도우 또는 자식 윈도우로 설정하고
- MFC에서는 메시지의 처리를 위해 메시지 맵을 사용한다. 메시지 맵은 관련 헤더파일에 미리 정의된 매크로들로 구성되며 MFC프레임워크가 실행시간에 이 메시지 맵을 해석하여 발생한 메시지와 메시지 핸들러 함수를 연결되도록 해준다.
- MFC의 최상위 클래스(Root Class) 는 CObject 클래스이다 MFC 대부분의 클래스는 CObject 클래스로부터 상속 받는다.
- MFC로 프로그램을 작성할 경우 한 개의 프로그램을 포함하고 관장하는 클래스가 바로 CWinApp로 다음과
같은 역할을 한다.
- ① 프로그램의 시작과 종료를 담당한다.
- ② 프로그램이 시작될 때, 메인 프레임 윈도우를 생성시켜준다.
- ③ 메시지 루프를 돌면서 프로그램을 구동시킨다.
- ④ 프로그램 전체를 대표하는 기능을 수행한다.
- MFC에서 제공하는 다큐먼트/뷰 구조는 문서자체에 대한 처리 클래스와 화면에 보이는 클래스를 각각 분리하도록 하고 있으며 그 역할을 담당하는 것이 각각 CDocument 클래스와 CView 클래스가 된다.
- SDI 다큐먼트/뷰 구조를 가진 MFC 응용프로그램을 만들었을 때 최상위 프레임 윈도우에 해당하는 클래스는 CMainFrame 클래스이며 CFrameWnd 클래스를 상속받아 만들어진다.
'컴퓨터과학[2-1] > knou_[2-1]Visual_C' 카테고리의 다른 글
MFC 윈도우 프로그래밍(최호성)101page 풀이 (0) | 2015.03.29 |
---|---|
MFC Control Video (0) | 2015.03.28 |
Visual C++ 7강 MFC SDI 프로그램의 응용 (0) | 2015.01.24 |
Visual C++ 6강 MFC SDI 프로그래밍 (0) | 2015.01.24 |
Visual C++ 5강 디버깅과 클래스 (0) | 2015.01.24 |
댓글