Share via


문서/뷰 아키텍처

기본적으로 MFC 애플리케이션 마법사는 문서 클래스와 뷰 클래스를 사용하여 애플리케이션 구조를 만듭니다. MFC는 데이터 관리를 이러한 두 클래스로 구분합니다. 이 문서에서는 데이터를 저장하고 데이터 인쇄를 관리하고 데이터의 여러 보기를 업데이트하는 좌표를 관리합니다. 보기는 데이터를 표시하고 선택 및 편집을 포함하여 사용자 상호 작용을 관리합니다.

이 모델에서 MFC 문서 개체는 영구 스토리지에 데이터를 읽고 씁니다. 또한 문서는 데이터베이스와 같이 어디에 있든 데이터에 대한 인터페이스를 제공할 수 있습니다. 별도의 뷰 개체는 창에서 데이터를 렌더링하는 것부터 사용자 선택 및 데이터 편집에 이르기까지 데이터 표시를 관리합니다. 보기는 문서에서 표시 데이터를 가져오고 데이터가 변경되면 문서와 다시 통신합니다.

문서/보기 분리를 쉽게 재정의하거나 무시할 수 있지만 대부분의 경우 이 모델을 따라야 하는 강력한 이유가 있습니다. 가장 좋은 점은 스프레드시트 및 차트 보기와 같은 동일한 문서의 여러 보기가 필요한 경우입니다. 문서/뷰 모델을 사용하면 별도의 뷰 개체가 데이터의 각 뷰를 나타내고, 모든 뷰(예: 계산 엔진)에 공통적인 코드가 문서에 상주할 수 있습니다. 또한 이 문서에서는 데이터가 변경 될 때마다 모든 보기를 업데이트하는 작업을 수행합니다.

MFC 문서/보기 아키텍처를 사용하면 여러 보기, 여러 문서 유형, 분할자 창 및 기타 중요한 사용자 인터페이스 기능을 쉽게 지원할 수 있습니다.

MFC 프레임워크의 부분은 사용자와 프로그래머 모두에게 가장 많이 표시되는 문서와 보기입니다. 프레임워크를 사용하여 애플리케이션을 개발하는 대부분의 작업은 문서 작성 및 클래스 보기로 진행됩니다. 이 문서 패밀리는 다음을 설명합니다.

  • 문서 및 뷰의 목적과 프레임워크에서 상호 작용하는 방식

  • 구현하기 위해 수행해야 하는 작업입니다.

문서/보기의 핵심은 다음과 같은 네 가지 주요 클래스입니다.

CDocument(또는 COleDocument) 클래스는 프로그램의 데이터를 저장하거나 제어하는 데 사용되는 개체를 지원하고 프로그래머 정의 문서 클래스에 대한 기본 기능을 제공합니다. 문서는 사용자가 일반적으로 파일 메뉴에서 열기 명령을 사용하여 열고 파일 메뉴의 저장 명령을 사용하여 저장하는 데이터 단위를 나타냅니다.

CView(또는 여러 파생 클래스 중 하나)는 프로그래머 정의 뷰 클래스에 대한 기본 기능을 제공합니다. 보기는 문서에 첨부되고 문서와 사용자 간의 중개자 역할을 합니다. 보기는 화면에 문서의 이미지를 렌더링하고 사용자 입력을 문서에 대한 작업으로 해석합니다. 또한 이 보기는 인쇄 및 인쇄 미리 보기 모두에 대한 이미지를 렌더링합니다.

CFrameWnd (또는 변형 중 하나)는 문서의 하나 이상의 보기 주위에 프레임을 제공하는 개체를 지원합니다.

CDocTemplate (또는 CSingleDocTemplate 또는 CMultiDocTemplate)은 지정된 형식의 하나 이상의 기존 문서를 조정하고 해당 형식에 대한 올바른 문서, 보기 및 프레임 창 개체 만들기를 관리하는 개체를 지원합니다.

다음 그림에서는 문서와 해당 뷰 간의 관계를 보여 줍니다.

View is the part of the document that's displayed.
문서 및 보기

클래스 라이브러리의 문서/뷰 구현은 데이터 자체를 표시에서 분리하고 데이터에 대한 사용자 작업과 분리합니다. 데이터에 대한 모든 변경 내용은 문서 클래스를 통해 관리됩니다. 뷰는 이 인터페이스를 호출하여 데이터에 액세스하고 업데이트합니다.

문서, 관련 보기 및 뷰를 구성하는 프레임 창은 문서 서식 파일에서 생성됩니다. 문서 서식 파일은 한 문서 유형의 모든 문서를 만들고 관리하는 역할을 담당합니다.

다음에 대해 자세히 알고 싶은 사항

참고 항목

사용자 인터페이스 요소
Windows
프레임 창
문서 서식 파일 및 문서/보기 만들기 프로세스
문서/보기 만들기
새 문서, 창 및 뷰 만들기