문서/뷰 아키텍처의 대체
일반적으로 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의 기본 클래스를 CCmdTarget 및 CObject.둘 다 후자의 클래스는 많지 않습니다.
선언 된 CDocument:
두 CString 개체입니다.
3 BOOLs.
하나 CDocTemplate 포인터입니다.
하나 CPtrList 보기는 문서 목록을 포함 하는 개체입니다.
또한 문서 문서 개체, 문서의 뷰 개체, 프레임 창 및 문서 템플릿 개체를 만드는 데 시간이 필요 합니다.
사용 하지 않는 기도하는 문서와 뷰를 처리 합니다.데이터 관리 및 그리기 코드 뷰 대신 프레임 창에 배치 합니다.이 방법은 C 언어 프로그래밍 모델에 가깝습니다.
문서와 뷰를 전혀 만들지를 없애려면 만든 MFC 프레임 워크 부분을 재정의 합니다.문서 작성 프로세스 호출로 시작 CWinApp::AddDocTemplate.제거할 해당 호출 응용 프로그램 클래스의 InitInstance 구성원 작동 하 고 대신 프레임 창에서 만들기 InitInstance 직접.프레임 창 클래스에 데이터 관리 코드를 넣습니다.문서/뷰 작성 프로세스에 나와 문서/뷰 만들기.더 많은 작업이 며, 프레임 워크에 대 한 깊은 이해가 필요 하지만의 전적으로 문서/뷰 오버 헤드를 해제 합니다.
문서 MFC: 문서 데이터베이스 클래스 사용 및 뷰 데이터베이스 응용 프로그램의 컨텍스트 내에서 문서/뷰 대안의 구체적인 예제를 제공 합니다.