다음을 통해 공유


문서/뷰 아키텍처의 대체

일반적으로 MFC 응용 프로그램 정보, 파일 형식 및 사용자 데이터의 시각적 표현을 관리 하는 문서/뷰 아키텍처를 사용 합니다.대부분의 데스크톱 응용 프로그램에서는 문서/뷰 아키텍처에 적합 하 고 효율적인 응용 프로그램 아키텍처가입니다.이 아키텍처에서 보기 및 대부분의 경우 데이터를 구분 응용 프로그램을 단순화 하 고 중복 코드를 줄입니다.

그러나 문서/뷰 아키텍처는 일부 상황에 적합 하지 않습니다.이러한 예제를 고려 하십시오.

  • Windows 용 C에서 작성 된 응용 프로그램을 포팅하는 경우 포트가 응용 프로그램에 문서/뷰 지원을 추가 하기 전에 완료 하려는 수도 있습니다.

  • Lightweight 유틸리티를 작성 하는 경우에 문서/뷰 아키텍처가 없으면 작업을 수행할 수 수 있습니다.

  • 원래 코드에 이미 데이터 관리 데이터와 혼합 하는 경우 두 가지를 구분 해야 하기 때문에 보기, 이동 코드의 문서/뷰 모델 그만한 가치가 아닙니다.코드 유지 수도 있습니다.

문서/뷰 아키텍처를 사용 하지 않는 응용 프로그램을 만들려면 취소는 에서 문서/뷰 아키텍처 지원 MFC 응용 프로그램 마법사의 1 단계에서에서 확인란.참조 MFC 응용 프로그램 마법사 대 한 자세한 내용은.

[!참고]

대화 상자 기반 MFC 응용 프로그램 마법사로 만든 응용 프로그램에서 문서/뷰 아키텍처를 사용 하지 마십시오 때문에 문서/뷰 아키텍처 지원 확인란 대화 응용 프로그램 종류를 선택 하면 사용할 수 없습니다.

와 마찬가지로 모든 다른 마법사 생성 응용 프로그램을 소스 및 대화 상자 편집기에서 뿐만 아니라 Visual C++ 마법사에서 생성 된 응용 프로그램과 함께 작동 합니다.응용 프로그램, 도구 모음, 스크롤 막대 및 상태 표시줄을 지원할 수 있고는 에 대 한 상자.응용 프로그램에는 문서 템플릿이 등록 되지 않습니다 및 문서 클래스는 포함 되지 않습니다.

생성 된 응용 프로그램의 뷰 클래스에 있음을 참고 CChildView에서 파생 된 CWnd.MFC를 만들고 응용 프로그램에서 만든 프레임 창 내에서 뷰 클래스 중 하나의 인스턴스를 배치 합니다.위치 및 응용 프로그램의 콘텐츠 관리를 단순화할 수 있기 때문에 MFC는 뷰 창을 사용 하 여 적용 합니다.그리기 코드를 추가할 수 있는 OnPaint 이 클래스의 멤버.코드 프레임 대신 뷰에 스크롤 막대를 추가 해야 합니다.

많은 응용 프로그램의 기본 기능을 구현 하기 위해 MFC에서 제공 하는 문서/뷰 아키텍처를 담당 하기 때문에 응용 프로그램의 여러 가지 중요 한 기능을 구현 하는 데 담당가 없는 프로젝트에서를 의미 합니다.

  • MFC 응용 프로그램 마법사가 제공 하는 대로 응용 프로그램의 메뉴만 포함 된 New 및 Exit 명령에 파일 메뉴.(해당 New 명령을 MDI 응용 프로그램 에서만 지원 되는, 지원 문서/뷰 없이 SDI 응용 프로그램 않습니다.) 생성 된 메뉴 리소스는 MRU (최근에 사용한) 목록을 지원 하지 않습니다.

  • 하 고 구현 하는 응용 프로그램을 비롯 하 여 지 원하는 모든 명령의 처리기 함수를 추가 해야 열기저장 에 있는 파일 메뉴.MFC 지원 문서/뷰 아키텍처에 밀접 하 게 연결 한다는 일반적으로 이러한 기능을 지원 하기 위한 코드를 제공 합니다.

  • 요청 하는 경우, 응용 프로그램의 도구 모음 최소화 됩니다.

마법사는 올바른 MFC 아키텍처를 보장 하기 때문에 MFC 응용 프로그램 마법사 응용 프로그램에서 문서/뷰 아키텍처를 하지 않고 사용 하면 만들 것을 권장 합니다.그러나 마법사를 사용 하 여 방지 해야 하는 경우 여기에 코드의 문서/뷰 아키텍처를 사용 하지 않고 몇 가지:

  • 문서에서 사용 하지 않은 추가물으로 처리 하 고 위에서 설명한 것 처럼 해당 뷰 클래스에 데이터 관리 코드를 구현 합니다.문서에 대 한 오버 헤드는 상대적으로 낮습니다.단일 CDocument 개체가 약간의 오버 헤드가 단독으로 더한 적은 오버 헤드를 초래 CDocument의 기본 클래스를 CCmdTargetCObject.둘 다 후자의 클래스는 많지 않습니다.

    선언 된 CDocument:

    • CString 개체입니다.

    • 3 BOOLs.

    • 하나 CDocTemplate 포인터입니다.

    • 하나 CPtrList 보기는 문서 목록을 포함 하는 개체입니다.

    또한 문서 문서 개체, 문서의 뷰 개체, 프레임 창 및 문서 템플릿 개체를 만드는 데 시간이 필요 합니다.

  • 사용 하지 않는 기도하는 문서와 뷰를 처리 합니다.데이터 관리 및 그리기 코드 뷰 대신 프레임 창에 배치 합니다.이 방법은 C 언어 프로그래밍 모델에 가깝습니다.

  • 문서와 뷰를 전혀 만들지를 없애려면 만든 MFC 프레임 워크 부분을 재정의 합니다.문서 작성 프로세스 호출로 시작 CWinApp::AddDocTemplate.제거할 해당 호출 응용 프로그램 클래스의 InitInstance 구성원 작동 하 고 대신 프레임 창에서 만들기 InitInstance 직접.프레임 창 클래스에 데이터 관리 코드를 넣습니다.문서/뷰 작성 프로세스에 나와 문서/뷰 만들기.더 많은 작업이 며, 프레임 워크에 대 한 깊은 이해가 필요 하지만의 전적으로 문서/뷰 오버 헤드를 해제 합니다.

문서 MFC: 문서 데이터베이스 클래스 사용 및 뷰 데이터베이스 응용 프로그램의 컨텍스트 내에서 문서/뷰 대안의 구체적인 예제를 제공 합니다.

참고 항목

개념

문서/뷰 아키텍처